【问题标题】:custom boost prefix/namspace - how to build with自定义提升前缀/命名空间 - 如何构建
【发布时间】: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 如果您的问题得到解决,请考虑写一个回答帖子,以便其他人知道您是如何解决的。并将其标记为已接受。

标签: c++ boost cmake


【解决方案1】:

对 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)
...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-01
    • 1970-01-01
    • 2016-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多