首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么CMake在Ubuntu18.04上找不到我的Boost库?

为什么CMake在Ubuntu18.04上找不到我的Boost库?
EN

Stack Overflow用户
提问于 2019-11-05 14:23:59
回答 1查看 1.7K关注 0票数 1

快把我逼疯了。在我的CMakeLists.txt中有:

find_package(Boost 1.63.0 REQUIRED SYSTEM)

结果:

代码语言:javascript
运行
复制
[0/1] Re-running CMake...
Build type: Release
CMake Error at /usr/share/cmake-3.10/Modules/FindBoost.cmake:1947 (message):
  Unable to find the requested Boost libraries.

  Boost version: 1.65.1

  Boost include path: /usr/include

  Could not find the following Boost libraries:

          boost_system

但是:

代码语言:javascript
运行
复制
$ locate libboost_system
/usr/lib/x86_64-linux-gnu/libboost_system.a
/usr/lib/x86_64-linux-gnu/libboost_system.so
/usr/lib/x86_64-linux-gnu/libboost_system.so.1.65.1

和:

代码语言:javascript
运行
复制
$ sudo apt install libboost-all-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libboost-all-dev is already the newest version (1.65.1.0ubuntu1).

我以前使用过一个自编译的1.63.0,但是我已经从/usr/local/lib/usr/local/include中删除了所有的文件。也许它还在这里萦绕着..?

如果我发现这样的刺激(没有系统):

find_package(Boost 1.63.0 REQUIRED)

..then配置成功,但不会链接到${Boost_SYSTEM_LIBRARY}

代码语言:javascript
运行
复制
/usr/bin/ld: src/app/CMakeFiles/app.dir/application.cpp.o: undefined reference to symbol '_ZN5boost6system15system_categoryEv'
//usr/lib/x86_64-linux-gnu/libboost_system.so.1.65.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-05 14:47:31

问题是,您应该要求system而不是SYSTEM,即使它在使用SYSTEM时也抱怨缺少boost_system。我发现令人困惑:

find_package(Boost 1.63.0 REQUIRED system)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58713393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档