自定义提升前缀/命名空间 - 如何使用

custom boost prefix/namspace - how to build with

本文关键字:何使用 命名空间 前缀 自定义      更新时间:2023-10-16

我需要使用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 (消息(:找不到请求的加速库。

加速版本:1.61.0

提升包含路径:
/路径/到/自定义/提升/包含

找不到以下加速库:

boost_unit_test_framework

未找到提升库。 您可能需要设置BOOST_LIBRARYDIR 到包含 Boost 库的目录或BOOST_ROOT到 的位置

如何指定查找名称如下的库(my_标准名称的补充(: 类似于Boost_LIB_VERSION,它提供了将版本添加到 lib 名称的能力

my_boost_161_unit_test_framework

CMake 脚本的这一新增功能解决了这个问题:

...
set(Boost_NO_SYSTEM_PATHS OFF)
set(Boost_LIB_PREFIX my_boost_161)
set(Boost_NAMESPACE my_boost_161)
set(Boost_USE_STATIC_LIBS OFF)
...