Netbeans:添加"编译线 - 附加选项" " -lboost_system"在编译命令

时间:2016-03-05 16:21:39

标签: c++ boost netbeans compiler-options

我使用Netbeans作为IDE并且一直在尝试构建一段使用boost库的代码,但是我收到了以下错误

  

g ++ -c -g -MMD -MP -MF" build / Debug / GNU-Linux-x86 / tcpproxy_server.o.d" -o build / Debug / GNU-Linux-x86 / tcpproxy_server.o tcpproxy_server.cpp   mkdir -p dist / Debug / GNU-Linux-x86   g ++ -o dist / Debug / GNU-Linux-x86 / tcp_proxy build / Debug / GNU-Linux-x86 / tcpproxy_server.o   build / Debug / GNU-Linux-x86 / tcpproxy_server.o:在函数__static_initialization_and_destruction_0(int, int)': /usr/include/boost/system/error_code.hpp:221: undefined reference to boost :: system :: generic_category()'   /usr/include/boost/system/error_code.hpp:222:对boost::system::generic_category()' /usr/include/boost/system/error_code.hpp:223: undefined reference to boost :: system :: system_category()'的未定义引用   build / Debug / GNU-Linux-x86 / tcpproxy_server.o:在函数boost::system::error_code::error_code()': /usr/include/boost/system/error_code.hpp:322: undefined reference to boost :: system :: system_category()'   build / Debug / GNU-Linux-x86 / tcpproxy_server.o:在函数boost::asio::error::get_system_category()': /usr/include/boost/asio/error.hpp:230: undefined reference to boost :: system :: system_category()'   build / Debug / GNU-Linux-x86 / tcpproxy_server.o:在函数boost::thread_exception::thread_exception(int, char const*)': /usr/include/boost/thread/exceptions.hpp:51: undefined reference to boost :: system :: system_category()'   collect2:错误:ld返回1退出状态

所以我做了一些在线搜索错误,发现我必须添加" -lboost_system"在我的编译命令中。

我在" project-> properties-> build-> c ++ compiler->中添加了它。附加选项"但仍然是同样的错误。

  

g ++ -lboost_system -o dist / Debug / GNU-Linux-x86 / tcp_proxy build / Debug / GNU-Linux-x86 / tcpproxy_server.o   build / Debug / GNU-Linux-x86 / tcpproxy_server.o:在函数__static_initialization_and_destruction_0(int, int)': /usr/include/boost/system/error_code.hpp:221: undefined reference to boost :: system :: generic_category()'   /usr/include/boost/system/error_code.hpp:222:对boost::system::generic_category()' /usr/include/boost/system/error_code.hpp:223: undefined reference to boost :: system :: system_category()'的未定义引用   build / Debug / GNU-Linux-x86 / tcpproxy_server.o:在函数boost::system::error_code::error_code()': /usr/include/boost/system/error_code.hpp:322: undefined reference to boost :: system :: system_category()'   build / Debug / GNU-Linux-x86 / tcpproxy_server.o:在函数boost::asio::error::get_system_category()': /usr/include/boost/asio/error.hpp:230: undefined reference to boost :: system :: system_category()'   build / Debug / GNU-Linux-x86 / tcpproxy_server.o:在函数boost::thread_exception::thread_exception(int, char const*)': /usr/include/boost/thread/exceptions.hpp:51: undefined reference to boost :: system :: system_category()'   collect2:错误:ld返回1退出状态

我发现我必须在编译行的末尾添加它,例如:

  

" g ++ tcp_proxy.cpp -o tcpproxy -lboost_system"

我尝试了它的工作,但netbeans正在添加"添加选项"在开始

像:

  

g ++ -lboost_system -o dist / Debug / GNU-Linux-x86 / tcp_proxy build / Debug / GNU-Linux-x86 / tcpproxy_server.o

有什么方法可以配置netbeans来添加我的选项吗?

1 个答案:

答案 0 :(得分:0)

所以,我做了一些搜索,发现了一个问题,我的问题

链接到帖子:

C++ Boost on linux via Netbeans remote developement: undefined reference to boost::filesystem::path::codecvt()

这表示我可以使用以下方式链接库:

  

项目属性>链接器>图书馆>添加库>选择.a文件。

这在某种程度上解决了我的问题,我现在尝试成功:

  

g ++ -c -g -MMD -MP -MF“build / Debug / GNU-Linux-x86 / tcpproxy_server.o.d”-o build / Debug / GNU-Linux-x86 / tcpproxy_server.o tcpproxy_server.cpp   mkdir -p dist / Debug / GNU-Linux-x86

     

g ++ -o dist / Debug / GNU-Linux-x86 / tcp_proxy build / Debug / GNU-Linux-x86 / tcpproxy_server.o -lboost_system

但是我仍然不确定这是否是正确的方法或为什么添加它以及其他编译器选项不起作用。