C++ Netbeans:添加";编译行-附加选项“&引用-lboost“系统”;在compile命令的末尾

C++ Netbeans:添加";编译行-附加选项“&引用-lboost“系统”;在compile命令的末尾,c++,boost,netbeans,compiler-options,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_

我正在使用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\u server.o:在函数
\u静态\u初始化\u和\u销毁\u 0(int,int)”中:
/usr/include/boost/system/error\u code.hpp:221:未定义对
boost::system::generic\u category()的引用 /usr/include/boost/system/error_code.hpp:222:对
boost::system::generic_category()的未定义引用
/usr/include/boost/system/error_code.hpp:223:未定义对
boost::system::system_category()的引用 build/Debug/GNU-Linux-x86/tcpproxy_server.o:In function
boost::system::error_code::error_code():
/usr/include/boost/system/error_code.hpp:322:未定义对
boost::system::system_category()的引用 build/Debug/GNU-Linux-x86/tcpproxy_server.o:In function
boost::asio::error::get_system_category():
/usr/include/boost/asio/error.hpp:230:未定义对
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:对
boost::system::system_category()的未定义引用 collect2:错误:ld返回了1个退出状态

所以我在网上搜索了一些错误,发现我必须在compile命令中添加“-lboost_system”

我在“项目->属性->构建->c++编译器->附加选项”中添加了它,但仍然是相同的错误

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\u server.o:在函数
\u静态\u初始化\u和\u销毁\u 0(int,int)”中:
/usr/include/boost/system/error\u code.hpp:221:未定义对
boost::system::generic\u category()的引用 /usr/include/boost/system/error_code.hpp:222:对
boost::system::generic_category()的未定义引用
/usr/include/boost/system/error_code.hpp:223:未定义对
boost::system::system_category()的引用 build/Debug/GNU-Linux-x86/tcpproxy_server.o:In function
boost::system::error_code::error_code():
/usr/include/boost/system/error_code.hpp:322:未定义对
boost::system::system_category()的引用 build/Debug/GNU-Linux-x86/tcpproxy_server.o:In function
boost::asio::error::get_system_category():
/usr/include/boost/asio/error.hpp:230:未定义对
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:对
boost::system::system_category()的未定义引用 collect2:错误:ld返回了1个退出状态

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

“g++tcp_proxy.cpp-o tcpproxy-lboost_系统”

这是我尝试过的,而且很有效,但是netbeans在一开始就添加了“添加选项”

比如:

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


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

因此,我进行了更多的搜索,发现了一个与我的问题有点类似的问题

链接至帖子:

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

项目属性>链接器>库>添加库>选择.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_代理构建/Debug/GNU-Linux-x86/tcpproxy_server.o-lboost_系统


但是我仍然不确定这是否是正确的方法,或者为什么在编译器选项之外添加它不起作用。

因此,我做了一些进一步的搜索,发现了一个与我的问题有关的问题

链接至帖子:

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

项目属性>链接器>库>添加库>选择.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_代理构建/Debug/GNU-Linux-x86/tcpproxy_server.o-lboost_系统


但是我仍然不确定这是否是正确的方法,或者为什么在编译器选项之外添加它不起作用。

您可以参考这个线程gcc命令,就像从右到左解析一样。所以,如果你想将-l应用于你编译的任何东西,你需要把它放在它的右边,@abdallessamali,伙计,谢谢你的回答,但我不想访问命令行“参数”,我请求你仔细阅读这个问题,我需要编译/构建命令以“添加选项”的方式进行修改我在最终构建结束时添加了很多内容command@user3528438,谢谢,先生,但是我已经提到我知道gcc命令解析,并且通过终端上的命令我已经让它工作了。。但在netbeans中我如何做到这一点,请阅读上面的注释,您也可以参考这个线程gcc命令,就像从右到左解析一样。所以如果你想把-l应用到你编译的任何东西上,你需要把它放到装备上