我生成了一个名为 mylib80.dll 的共享库(它有 后缀“80”,因为我想将版本信息嵌入到库名称中。
我使用 set_target_properties 和 _POSTFIX 属性来实现 这。默认情况下,CMake 将相应的导入库命名为 mylib80.lib。但我希望我的共享库有一个名为 mylib.lib(名称中没有嵌入版本)。
是否可以在 全部?我尝试了 IMPORT_SUFFIX,但它似乎没有像我预期的那样工作。
我使用 MSVC,对于 GCC 和其他编译器我不需要这个。
如有任何帮助,我们将不胜感激。
最佳答案
使用以下 CMake 目标属性为 *.lib 和 *.dll 文件指定单独的名称,而不是使用 _POSTFIX 属性:
http://cmake.org/cmake/help/cmake-2-8-docs.html#prop_tgt:ARCHIVE_OUTPUT_NAME http://cmake.org/cmake/help/cmake-2-8-docs.html#prop_tgt:LIBRARY_OUTPUT_NAME http://cmake.org/cmake/help/cmake-2-8-docs.html#prop_tgt:RUNTIME_OUTPUT_NAME
RUNTIME_OUTPUT_NAME属性对应dll文件的名字,另外一个(我总是忘记是哪个。。。)对应lib文件的名字。
如果 lib 已经在没有 _POSTFIX 的情况下正确命名,则只需使用 RUNTIME_OUTPUT_NAME 属性重命名 dll 文件即可。
关于c++ - CMake:如何指定自定义导入库名称(MSVC),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7792153/