Ger*_*ári 6 c++ boost g++ static-linking
我使用bjam构建了我的boost库,然后将所有.a文件移入c:\Server\libs\boost_1_46_0\lib
如果我想编译我的程序有一些错误:
编译命令
g++ -Ic:\Server\libs\boost_1_46_0\ -Lc:\Server\libs\boost_1_46_0\lib\ -lboost_thread-mgw45-mt-1_46 -o try1 try1.cpp
错误
C:\Users\FEHERG~1\AppData\Local\Temp\ccB46To7.o:try1.cpp:(.text+0xe9): undefined
reference to `_imp___ZN5boost6thread4joinEv'
C:\Users\FEHERG~1\AppData\Local\Temp\ccB46To7.o:try1.cpp:(.text+0x120): undefine
d reference to `_imp___ZN5boost6threadD1Ev'
C:\Users\FEHERG~1\AppData\Local\Temp\ccB46To7.o:try1.cpp:(.text+0x138): undefine
d reference to `_imp___ZN5boost6threadD1Ev'
C:\Users\FEHERG~1\AppData\Local\Temp\ccB46To7.o:try1.cpp:(.text$_ZN5boost11this_
thread18interruptible_waitEm[boost::this_thread::interruptible_wait(unsigned lon
g)]+0x40): undefined reference to `_imp___ZN5boost11this_thread18interruptible_w
aitEPvNS_6detail7timeoutE'
C:\Users\FEHERG~1\AppData\Local\Temp\ccB46To7.o:try1.cpp:(.text$_ZN5boost6thread
C1IPFvvEEET_NS_10disable_ifINS_14is_convertibleIRS4_NS_6detail13thread_move_tIS4
_EEEEPNS0_5dummyEE4typeE[boost::thread::thread<void (*)()>(void (*)(), boost::di
sable_if<boost::is_convertible<void (*&)(), boost::detail::thread_move_t<void (*
)()> >, boost::thread::dummy*>::type)]+0x23): undefined reference to `_imp___ZN5
boost6thread12start_threadEv'
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我解决这个问题的问题吗?
我遵循了这个教程: http ://antonym.org/2009/05/threading-with-boost---part-i-creating-threads.html
所以这是来源:http://pastebin.com/YqCPLNwU
更新:
我认为错误不在于库,错误在库中.我用bjam和toolchain=gcc multithread选项构建它.
UPDATE
这是objdump http://pastebin.com/4fpqYb7d
UPDATE
我发现问题是链接器想要链接动态链接或类似的东西.
那里"杰克凯利"说我需要#define BOOST_THREAD_USE_LIB在我的源文件的开头添加.但这对我没有帮助.我如何静态链接库?(-static没有帮助)
| 归档时间: |
|
| 查看次数: |
7135 次 |
| 最近记录: |