2014-10-05 123 views
0

你好我试图升压日志简单的例子,用的mingw32在Windows 8和链接我得到链接错误:MINGW32升压登录链接错误:InterlockedCompareExchange

Log.cpp

#include <boost/log/trivial.hpp> 

int main() 
{ 

    BOOST_LOG_TRIVIAL(trace) << "A trace severity message"; 
    BOOST_LOG_TRIVIAL(debug) << "A debug severity message"; 
    BOOST_LOG_TRIVIAL(info) << "An informational severity message"; 
    BOOST_LOG_TRIVIAL(warning) << "A warning severity message"; 
    BOOST_LOG_TRIVIAL(error) << "An error severity message"; 
    BOOST_LOG_TRIVIAL(fatal) << "A fatal severity message"; 
} 

而且我运行下面的编译和链接命令

gcc -Wall -g -static -I./../../boost_1_56_0/ Log.cpp -o Log.exe -L./../../boost_1_56_0/stage/lib/ -lboost_log-mgw48-mt-1_56 -lboost_thread-mgw48-mt-1_56 -lboost_system-mgw48-mt-1_56 -lstdc++ 

而且,我发现了以下错误:

C:\SpellSpindle\GelatinousEngine\BoostHelloWorld\Log>mingw32-make 
g++ -Wall -g -static -I./../../boost_1_56_0/ Log.cpp -o Log.exe -L./../../boost_ 
1_56_0/stage/lib/ -lboost_log-mgw48-mt-1_56 -lboost_thread-mgw48-mt-1_56 -lboost 
_system-mgw48-mt-1_56 -lstdc++ 
./../../boost_1_56_0/stage/lib/\libboost_thread-mgw48-mt-1_56.a(thread.o):thread 
.cpp:(.text$_ZN5boost6detail5win3223GetTickCount64emulationEv+0x1e): undefined r 
eference to `_InterlockedCompareExchange' 
./../../boost_1_56_0/stage/lib/\libboost_thread-mgw48-mt-1_56.a(thread.o):thread 
.cpp:(.text$_ZN5boost6detail5win3223GetTickCount64emulationEv+0x77): undefined r 
eference to `_InterlockedCompareExchange' 
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: ./../../bo 
ost_1_56_0/stage/lib/\libboost_thread-mgw48-mt-1_56.a(thread.o): bad reloc addre 
ss 0x77 in section `.text$_ZN5boost6detail5win3223GetTickCount64emulationEv' 
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: final link 
failed: Invalid operation 
collect2.exe: error: ld returned 1 exit status 
Makefile:15: recipe for target 'all' failed 
mingw32-make: *** [all] Error 1 

我一直试图让这个链接几天,并没有发现任何在互联网上发布的修复链接错误。

任何人都可以帮忙吗?

回答

0

从不同的网站拼接起来的信息:

+0

我有明确的4.8.1。我为mingw 4.8构建了boost库,但是我将它们重建为4.8.1,但它们仍然不能编译,给出了相同的错误。 – Anytime0 2014-10-06 22:21:03

+0

我用“boostrap mingw”,“bjam --toolset = gcc-4.8.1 --build-type = complete”构建它们。有没有其他的方法来构建它们,可以用于mingw 4.8.1?我尝试安装Mingw-W64,但安装时收到“Error Res”消息。它不会安装任何我可以编译的东西。我发现有一个向后兼容性错误,但是我第一次尝试构建和使用boost是与mingw 4.8.1。问题仍然是向后兼容还是其他问题? – Anytime0 2014-10-06 22:27:22

+0

你在说明明4.8破坏了增强版本,但现在有什么办法可以使用吗?它还是坏了吗? – Anytime0 2014-10-06 22:37:09

0

Mingw-W64的安装程序无法正常工作,但是我手动将其从存储库下载后,我能够正常工作。我为mingw版本4.9.1重建了boost库,然后它链接到了新的库。非常感谢!哇噢!