Bre*_*own 1 c++ boost g++ undefined-reference static-linking
我有一个应用程序,动态链接都可以,但是当我尝试使用静态链接进行编译时,我有以下错误.
我的应用程序使用boost线程,asio
错误:
/tmp/ccMj2fHI.o: In function `__static_initialization_and_destruction_0(int, int)':
test.cpp:(.text+0x237): undefined reference to `boost::system::get_system_category()'
test.cpp:(.text+0x243): undefined reference to `boost::system::get_generic_category()'
test.cpp:(.text+0x24f): undefined reference to `boost::system::get_generic_category()'
test.cpp:(.text+0x25b): undefined reference to `boost::system::get_generic_category()'
test.cpp:(.text+0x267): undefined reference to `boost::system::get_system_category()'
/tmp/ccnCWj1O.o: In function `__static_initialization_and_destruction_0(int, int)':
AccountSe.cpp:(.text+0x507): undefined reference to `boost::system::get_system_category()'
AccountSe.cpp:(.text+0x513): undefined reference to `boost::system::get_generic_category()'
AccountSe.cpp:(.text+0x51f): undefined reference to `boost::system::get_generic_category()'
AccountSe.cpp:(.text+0x52b): undefined reference to `boost::system::get_generic_category()'
AccountSe.cpp:(.text+0x537): undefined reference to `boost::system::get_system_category()'
Run Code Online (Sandbox Code Playgroud)
所有源文件都有类似的错误.
编译命令行:
g ++ -L/usr/lib/-lboost_system -lboost_thread -o newserver -static /usr/lib/libboost_thread.a /usr/lib/libboost_system.a stdafx.cpp test.cpp AccountSe.cpp ... -lpthread -std =的C++ 0x
这很可能是由于您的链接顺序.Boost库首先出现在命令行中,在处理它们之后,链接器将在继续链接其他目标文件和库之前丢弃未引用的符号.
把Boost库后,你的源代码和前-lpthread.
| 归档时间: |
|
| 查看次数: |
3222 次 |
| 最近记录: |