【发布时间】:2012-11-08 03:47:55
【问题描述】:
我正在尝试在我的项目中包含 Boost 库,并且一直面临同样的问题。我在带有 Codeblocks IDE 的 Ubuntu 12.10 上,并尝试手动安装库,从站点读取说明,但在标头和使用前构建的库中出现错误。
然后我通过终端sudo apt-get install libboost-all-dev 安装了这些库。之后,在我的代码块程序中,我可以包含像 #include <boost/regex.hpp> 这样的标头,但是当我尝试包含文件系统库的标头(#include "boost/filesystem/operations.hpp")时,我收到以下错误:
/usr/include/boost/system/error_code.hpp|214|undefined reference to boost::system::generic_category()'|
我不确定如何解决此错误(特别是在 Linux 上的 Codeblocks 中)。我真的可以在这里得到一些帮助。
编译器:GCC
程序代码:仅尝试包含上述文件系统operations.hpp文件。
从代码块构建日志:
Build started on: 20-11-2012 at 18:02.53
Build ended on: 20-11-2012 at 18:02.54
-------------- Build: Debug in libopenFrameworks ---------------
Target is up to date.
-------------- Build: Debug in reader1 ---------------
make -s -f Makefile Debug
linking i686 bin/reader1_debug linux
obj/i686Debug/src/testApp.o: In function `__static_initialization_and_destruction_0':
/usr/include/boost/system/error_code.hpp:214: undefined reference to `boost::system::generic_category()'
/usr/include/boost/system/error_code.hpp:215: undefined reference to `boost::system::generic_category()'
/usr/include/boost/system/error_code.hpp:216: undefined reference to `boost::system::system_category()'
obj/i686Debug/src/main.o: In function `__static_initialization_and_destruction_0':
/usr/include/boost/system/error_code.hpp:214: undefined reference to `boost::system::generic_category()'
/usr/include/boost/system/error_code.hpp:215: undefined reference to `boost::system::generic_category()'
/usr/include/boost/system/error_code.hpp:216: undefined reference to `boost::system::system_category()'
collect2: ld returned 1 exit status
make: *** [bin/reader1_debug] Error 1
Process terminated with status 2 (0 minutes, 1 seconds)
6 errors, 0 warnings
【问题讨论】:
-
你没有正确链接它,与你的系统路径和系统存储库不同,代码块不会为你做这件事,
-
@pyCthon:在这种情况下,您能否添加更多关于如何在 Code::blocks 中链接的详细信息。我尝试在设置中的某个位置添加链接器标志
-lboost_system,但没有解决。但是,我什至不确定我是否在正确的位置做了整个链接器标志。多一点细节会有很大帮助。 -
那么您使用的是什么编译器?鸣?海合会?你想运行什么代码?举个例子.....
-
@pyCthon:编译器是 Gcc。直到现在我还没有写过任何代码,但是尝试过包含
Boost filesystem library(上面帖子中的operation.hpp) -
它是否可以使用 g++ 从命令行编译带有 boost 文件系统库的常规程序?
标签: c++ linux boost codeblocks