2011-10-17 82 views
1

我生成一個名爲共享庫,例如,mylib80.dll(它有 後綴爲「80」,是因爲我希望嵌入版本信息成庫名CMake的:如何指定自定義的導入庫名(MSVC)

我用set_target_properties與_POSTFIX屬性來實現 這一點。在默認情況下,相應的導入庫爲 mylib80.lib CMake的名字,但我希望我的共享庫有一個名爲 MYLIB.LIB(不含版的導入庫嵌入到它的名字)。

是否有可能在 all?我試過了IMPORT_SUFFIX,但好像不行像我所期望的那樣。

我使用MSVC,我不需要爲GCC和其他編譯器。

任何幫助,將不勝感激。

+0

你可以發佈你的cmake文件嗎?沒有完整的代碼很難猜測cmake的功能。 – tune2fs

回答

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文件。

如果lib已經正確命名,沒有_POSTFIX,那麼只需使用RUNTIME_OUTPUT_NAME屬性重命名該dll文件即可。