0

我在使用 mingw-w64 gcc-4.8.1 在 Windows7 下使用 Boost_1_54 版本的 Boost::Log 库时遇到问题。我可以毫无问题地编译 boost,但我无法正确链接以下程序。

#include <boost/log/trivial.hpp>

int main(int, char*[]) 
{
   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";

    return 0; 
 }

我使用以下命令编译/链接程序

g++ -DBOOST_LOG_DYN_LINK log.cpp 
 -IC:\\Build\\Libs\\bin64\\boost\\include 
 -LC:\\Build\Libs\\bin64\\boost\\lib 
 -lpthread
 -lboost_thread-mgw48-mt-1_54
 -lboost_system-mgw48-1_54 
 -lboost_log-mgw48-1_54
 -lboost_log_setup-mgw48-1_54
 -lboost_filesystem-mgw48-1_54 -o loga.exe

错误如下所示:

C:\Users\buck\AppData\Local\Temp\ccvYpCEb.o:log.cpp:(.text+0x37): undefined refe
rence to `__imp__ZN5boost3log9v2_mt_nt57trivial6logger3getEv'
C:\Users\buck\AppData\Local\Temp\ccvYpCEb.o:log.cpp:(.text+0x7f): undefined refe
rence to `__imp__ZN5boost3log9v2_mt_nt57trivial6logger3getEv'
c:/mingw/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.1/../../../../x86_64-w64-
mingw32/bin/ld.exe: C:\Users\buck\AppData\Local\Temp\ccvYpCEb.o: bad reloc addre
ss 0x0 in section `.pdata$_ZNSt11char_traitsIcE6lengthEPKc'
collect2.exe: error: ld returned 1 exit status

在 linux 下,我可以毫无问题地运行该示例。我还尝试了不同的库顺序。但结果是一样的。

有没有人知道如何让它运行或如何继续找到问题?我现在正在尝试三个小时,但我不知道下一步该做什么。

问候

凯文

4

0 回答 0