【问题标题】:CMake: how to specify custom import library name (MSVC)CMake:如何指定自定义导入库名称(MSVC)
【发布时间】:2011-10-17 10:01:01
【问题描述】:

我生成了一个名为 mylib80.dll 的共享库(它有 后缀“80”,因为我想将版本信息嵌入到库名称中。

我使用 set_target_properties 和 _POSTFIX 属性来实现 这。默认情况下,CMake 将相应的导入库命名为 mylib80.lib。但我希望我的共享库有一个名为的导入库 mylib.lib(名称中没有嵌入版本)。

有没有可能 全部?我尝试了 IMPORT_SUFFIX,但它似乎没有像我预期的那样工作。

我使用 MSVC,对于 GCC 和其他编译器,我不需要这个。

任何帮助将不胜感激。

【问题讨论】:

  • 你能发布你的 cmake 文件吗?如果没有完整的代码,很难猜出 cmake 做了什么。

标签: c++ visual-c++ cmake


【解决方案1】:

使用以下 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 的情况下已经正确命名了库,则只需使用 RUNTIME_OUTPUT_NAME 属性重命名 dll 文件即可。

【讨论】:

    猜你喜欢
    • 2012-09-10
    • 2020-02-20
    • 2015-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多