gpt4 book ai didi

windows - 在 cmake 查找模块中处理发布/调试库的最佳实践

转载 作者:可可西里 更新时间:2023-11-01 09:24:04 28 4
gpt4 key购买 nike

我正在尝试为外部库编写一个 cmake 查找模块,并使其在 Windows 下运行。对于带有调试和发布标志(-MD 和 -MDd)的编译版本以及不同的编译器版本,该库具有不同的路径。例如有以下路径:

C:/cplex/lib/x86_windows_vs2012/stat_mda/cplex1262.lib
C:/cplex/lib/x86_windows_vs2012/stat_mdd/cplex1262.lib
C:/cplex/lib/x86_windows_vs2013/stat_mda/cplex1262.lib
C:/cplex/lib/x86_windows_vs2013/stat_mdd/cplex1262.lib

在查找模块中处理此问题的最佳做法是什么?

最佳答案

发布和调试版本可以用两种不同的方式处理,具体取决于您是提供 IMPORTED 库还是仅提供 CPLEX_LIBRARIES 变量中的文件列表:

  • 对于 IMPORTED 库,您应该使用 install(...EXPORT...)install(EXPORT ...)通过在 IMPORTED 目标上设置适当的配置相关属性自动处理此问题的命令(例如 IMPORTED_LOCATION_DEBUGIMPORTED_LOCATION_RELEASE)
  • 如果您的查找模块仅提供变量,例如 CPLEX_LIBRARIES,您可以使用 debugoptimized 说明符:

    set(CPLEX_LIBRARIES optimized <path-to-release.lib> debug <path-to-debug.lib>)

要在 vs2012 和 vs2013 版本之间进行选择,您的查找模块应该查询变量 MSVC11MSVC12

对于其他标志,请参阅约定的 Boost 查找模块。

我还建议编写配置模块而不是查找模块。

关于windows - 在 cmake 查找模块中处理发布/调试库的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31138220/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com