cmake findboost 如何设置 ABI 的 -g 标签?

cmake findboost how to set -g tag of the ABI?

我在使用 cmake 的 findboost 模块查找 boost-log 库时遇到问题。

而不是 libboost_log-vc120-mt-sgd-1_57 (它存在于我的 boost lib 目录中) cmake 搜索: libboost_log-vc120-mt-sd-1_57 不存在。

我尝试在调用 cmake(命令行参数)时以及在我的 cmakelists.txt 文件中启用 Boost_USE_DEBUG_RUNTIME,但它对库名称 cmake 的 ABI 标签没有影响查找搜索。

我使用的cmake版本是3.1.0

documentation 他们写道:

Boost_USE_DEBUG_RUNTIME - Set to ON or OFF to specify whether to use libraries linked to the MS debug C++ runtime ('g' tag). Default is ON.

所以它应该默认搜索 libboost_log-vc120-mt-sgd-1_57,同样在这个错误 report 中,他们引入了 Boost_USE_DEBUG_RUNTIME 标志,并且知道它应该默认设置为 on为了不破坏以前的行为。

好的,我找到了问题的答案,因为事实证明我的示例中首先缺少 2 个配置,

变量 MSVC 必须设置为 true(这会导致 ABI 标签包含 g 值)

秒,

变量CMAKE_FIND_LIBRARY_SUFFIXES是一个列表,必须设置为值lib dll