我生成一个名为的共享库,例如mylib80.dll(它有 后缀“80”,因为我想将版本信息嵌入库名。
我使用set_target_properties和_POSTFIX属性来实现 这个。默认情况下,CMake将相应的导入库命名为 mylib80.lib。但我希望我的共享库有一个名为的导入库 mylib.lib(没有嵌入其名称的版本)。
有可能吗? 所有?我尝试了IMPORT_SUFFIX,但它似乎无法正常工作。
我使用MSVC,我不需要为GCC和其他编译器提供此功能。
任何帮助都将不胜感激。
答案 0 :(得分:0)
使用以下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文件的名称。
如果已经在没有_POSTFIX的情况下正确命名了lib,那么只需使用RUNTIME_OUTPUT_NAME属性重命名dll文件。