简体   繁体   English

Mingw32 Boost日志链接错误:InterlockedCompareExchange

[英]Mingw32 Boost Log Link Errors: InterlockedCompareExchange

Hi I'm trying to link a Boost Log simple example with mingw32 on Windows 8 and I'm getting link errors: 嗨,我试图将Boost Log简单示例与Windows 8上的mingw32链接,但出现链接错误:

Log.cpp 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";
}

And I'm running the following compile and link command 我正在运行以下编译和链接命令

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++

And I'm getting the following errors: 我收到以下错误:

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

I've been trying to get this to link for days and haven't found anything posted on the internet that fix the link errors. 我已经尝试将其链接几天了,却没有发现互联网上发布的任何可解决链接错误的信息。

Can anyone help? 有人可以帮忙吗?

Stitching together information from different websites: 将来自不同网站的信息拼接在一起:

The installer for Mingw-W64 didn't work but after I downloaded it from the repository manually I was able to get the thing working. Mingw-W64的安装程序无法正常运行,但是当我从存储库中手动下载该安装程序后,我可以使该程序正常运行。 I rebuilt the boost libraries for mingw version 4.9.1 and then it did link to the new libraries. 我为mingw版本4.9.1重建了boost库,然后将其链接到新库。 Thank you greatly! 非常感谢! Woohoo! hoo!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM