无法链接到lboost_program_options

Can't link to lboost_program_options

本文关键字:program options lboost 链接      更新时间:2023-10-16

我正试图用以下g++命令编译我的项目:

g++ -Wall -o mdaemon mdaemon-Mdaemon.o mdaemon-Rm.o mdaemon-Share.o mdaemon-SuperDaemon.o mdaemon-wmxver.o  -pthread -L/home/sunshyn/wmx_simmode/src/../cots/lib/i686-redhat-linux-gnu ..//common/libcommon.a ..//common/pm/libpm.a ..//common/br/librouter.a ..//common/br/tcp/libipc_tcp.a ..//common/applink/libapplink.a ..//common/ur/libur.a ..//common/pma/libpma.a ..//common/cma/libcma.a -lbz2 -lcurses -ldl -lpthread -lboost_program_options -lboost_thread

这导致错误显示如下:

mdaemon-Mdaemon.o(.text+0x29b6): In function `main':
: undefined reference to `boost::program_options::options_description::m_default_line_length'
mdaemon-Mdaemon.o(.text+0x29c0): In function `main':
: undefined reference to `boost::program_options::options_description::options_description(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)'
collect2: ld returned 1 exit status
make: *** [mdaemon] Error 1

请告诉我命令中的错误是什么?

错误很可能意味着您没有将应用程序链接到program_options库。

仔细检查您的-L path(除了默认目录之外的目录,用于查找库)。

您也可以尝试在文件列表中包含该库的完整路径,不使用-l(例如g++ sources.cc ... /usr/lib/libboost_program_options.a)来链接静态库。