【发布时间】:2020-02-06 19:13:14
【问题描述】:
我需要使用自定义构建的 boost lib,它使用自己的库命名前缀以及代码中的命名空间。
我需要在CMakeLists.txt链接它:
set(BOOST_INCLUDEDIR /path/to/custom/boost/include)
set(BOOST_LIBRARYDIR /path/to/custom/boost/lib)
set(BOOST_NAMESPACE my_boost_161)
set(Boost_NO_SYSTEM_PATHS OFF)
set (Boost_USE_STATIC_LIBS OFF)
find_package (Boost REQUIRED COMPONENTS my_unit_test_framework)
include_directories (${Boost_INCLUDE_DIRS})
这些库的名称如下:
libmy_boost_161_unit_test_framework.so
确实存在于lib文件夹中
有如下错误:
CMake 错误 /home/user1/.localcmake/share/cmake-3.14/Modules/FindBoost.cmake:2132 (消息):找不到请求的 Boost 库。
Boost 版本:1.61.0
Boost 包含路径:
/path/to/custom/boost/include找不到以下 Boost 库:
boost_unit_test_framework未找到任何 Boost 库。您可能需要设置 BOOST_LIBRARYDIR 到包含 Boost 库的目录或 BOOST_ROOT 到 位置
我如何指定查找名称如下的库(my_ 除了标准名称):
类似于Boost_LIB_VERSION,它可以将版本添加到库名称
my_boost_161_unit_test_framework
【问题讨论】:
-
消息
Could not find the following Boost libraries:包含库的逻辑名称。对于 filename 正在搜索的查找,将-DBoost_DEBUG=ON选项传递给cmake。 -
非常感谢您的旗帜,它向我显示了详细信息,我可以找到所需的旗帜并解决我的问题。 Boost_LIB_PREFIX 和 Boost_NAMESPACE 对我的问题很有帮助
-
@amigo421 如果您的问题得到解决,请考虑写一个回答帖子,以便其他人知道您是如何解决的。并将其标记为已接受。