gpt4 book ai didi

c++ - CMake 在 Debian 上找不到 boost_program_options

转载 作者:太空狗 更新时间:2023-10-29 19:41:51 25 4
gpt4 key购买 nike

我需要 Boost 和一些组件库,包括 program_options,但由于库版本命名,CMake 的 FIND_PACKAGE 命令在 Debian 上失败。我怎样才能强制它以最干净的方式找到 program_options 库?

# CMakeLists.txt
SET( Boost_USE_STATIC_LIBS FALSE )
SET( Boost_USE_MULTITHREADED FALSE )
FIND_PACKAGE( Boost COMPONENTS program_options system thread REQUIRED)

结果如下:

Unable to find the requested Boost libraries.

Boost version: 1.54.0

Boost include path: /usr/include

The following Boost libraries could not be found:

boost_program_options

检查我的 boost 库:

$ ls -F /usr/lib | grep boost
libboost_program_options.so.1.49.0
libboost_program_options.so.1.54.0
libboost_system.a
libboost_system.so@
libboost_system.so.1.54.0
libboost_thread.a
libboost_thread.so@
libboost_thread.so.1.49.0
libboost_thread.so.1.54.0

请注意,program_options 是唯一没有unversioned 名称的库(其他库提供链接(由上面的 @ 表示)例如 libboost_system.so -> libboost_system.so.1.54.0)。据我所知,Debian 7.2 不提供创建此类链接的包,因此导致找不到 program_options。我能做什么不包括手动建立链接(我不能指望其他使用我的包的人能够做到这一点)。

$ cmake -DBoost_DEBUG=ON
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:961 ] Searching for PROGRAM_OPTIONS_LIBRARY_RELEASE: boost_program_options-gcc47-1_54;boost_program_options-gcc47;boost_program_options-1_54;boost_program_options;boost_program_options
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:993 ] Searching for PROGRAM_OPTIONS_LIBRARY_DEBUG: boost_program_options-gcc47-d-1_54;boost_program_options-gcc47-d;boost_program_options-d-1_54;boost_program_options-d;boost_program_options;boost_program_options
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:961 ] Searching for SYSTEM_LIBRARY_RELEASE: boost_system-gcc47-1_54;boost_system-gcc47;boost_system-1_54;boost_system;boost_system
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:993 ] Searching for SYSTEM_LIBRARY_DEBUG: boost_system-gcc47-d-1_54;boost_system-gcc47-d;boost_system-d-1_54;boost_system-d;boost_system;boost_system
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:961 ] Searching for THREAD_LIBRARY_RELEASE: boost_thread-gcc47-1_54;boost_thread-gcc47;boost_thread-1_54;boost_thread;boost_thread
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:993 ] Searching for THREAD_LIBRARY_DEBUG: boost_thread-gcc47-d-1_54;boost_thread-gcc47-d;boost_thread-d-1_54;boost_thread-d;boost_thread;boost_thread
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:1107 ] Boost_FOUND = FALSE

最佳答案

没关系,结果是安装 libboost-program-options-dev 建立链接。

关于c++ - CMake 在 Debian 上找不到 boost_program_options,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20502194/

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