【问题标题】:C++ compiler cannot find Boost libraries even after installing them即使在安装之后,C++ 编译器也找不到 Boost 库
【发布时间】:2018-05-12 08:15:05
【问题描述】:

在编译几个测试应用程序时,我收到以下错误:

g++: error: −lboost_system: No such file or directory
g++: error: −lboost_filesystem: No such file or directory

在运行以下命令时:

g++ -I/usr/include/boost/ -L/usr/lib/x86_64-linux-gnu/  aescuda.cpp -o test.o −lboost_system −lboost_filesystem

这些库已安装并出现在如下所示的位置:

<prompt>$ ll  /usr/lib/x86_64-linux-gnu/libboost_system.*
-rw-r--r-- 1 root root 49178 Jun 20  2014 /usr/lib/x86_64-linux-gnu/libboost_system.a
lrwxrwxrwx 1 root root    25 Jun 20  2014 /usr/lib/x86_64-linux-gnu/libboost_system.so -> libboost_system.so.1.54.0
-rw-r--r-- 1 root root 14536 Jun 20  2014 /usr/lib/x86_64-linux-gnu/libboost_system.so.1.54.0
<prompt>$ ll  /usr/lib/x86_64-linux-gnu/libboost_filesystem.*
-rw-r--r-- 1 root root 217628 Jun 20  2014 /usr/lib/x86_64-linux-gnu/libboost_filesystem.a
lrwxrwxrwx 1 root root     29 Jun 20  2014 /usr/lib/x86_64-linux-gnu/libboost_filesystem.so -> libboost_filesystem.so.1.54.0
-rw-r--r-- 1 root root  88936 Jun 20  2014 /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.54.0

谁能建议我哪里出错了:(

【问题讨论】:

  • ldconfig 在安装时运行了吗?
  • 是的,我已经执行了 ldconfig。我现在面临以下问题.. obj/x86_64/release/aescuda.cpp.o: In function _GLOBAL__sub_I_aescuda.cpp': aescuda.cpp:(.text.startup+0x68b): undefined reference to boost::system::generic_category()'] ...有什么建议吗?

标签: c++ gcc boost ubuntu-14.04


【解决方案1】:

l前面的字符有误:

−lboost_system

它应该是一个 ASCII 连字符:

-lboost_system

这导致编译器驱动程序将整个字符串视为输入文件名(显然不存在,因此 No such file or directory 错误),而不是作为要传递的选项到链接器。

(或许可以考虑切换终端字体。)

【讨论】:

  • 感谢您的帮助...但现在又出现了另一个错误:obj/x86_64/release/aescuda.cpp.o: In function GLOBAL_sub_I_aescuda.cpp' : aescuda.cpp:(.text.startup+0x68b): undefined reference to boost::system::generic_category()....有什么建议吗??
猜你喜欢
  • 1970-01-01
  • 2020-05-27
  • 2021-08-15
  • 2013-10-24
  • 1970-01-01
  • 2018-05-18
  • 2011-10-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多