2

http://nuwen.net/mingw.htmlから mingw ディストリビューションをダウンロードし、 Boost::Log ドキュメントから簡単な例をビルドしようとしました。これにより、次の (リンカー?) エラーが発生します。

C:\log>g++ -lboost_log main.cpp -o logtest.exe
C:\Users\MyUserName\AppData\Local\Temp\cc5rtLIQ.o:main.cpp:(.text+0x42): undefined reference to `boost::log::v2s_mt_nt5::trivial::logger::get()'
C:\Users\MyUserName\AppData\Local\Temp\cc5rtLIQ.o:main.cpp:(.text+0x5e): undefined reference to `boost::log::v2s_mt_nt5::trivial::logger::get()'
C:\Users\MyUserName\AppData\Local\Temp\cc5rtLIQ.o:main.cpp:(.text+0xe8): undefined reference to `boost::log::v2s_mt_nt5::trivial::logger::get()'
C:\Users\MyUserName\AppData\Local\Temp\cc5rtLIQ.o:main.cpp:(.text+0x105): undefined reference to `boost::log::v2s_mt_nt5::trivial::logger::get()'
C:\Users\MyUserName\AppData\Local\Temp\cc5rtLIQ.o:main.cpp:(.text+0x18f): undefined reference to `boost::log::v2s_mt_nt5::trivial::logger::get()'
C:\Users\MyUserName\AppData\Local\Temp\cc5rtLIQ.o:main.cpp:(.text+0x1ac): more undefined references to `boost::log::v2s_mt_nt5::trivial::logger::get()' follow
c:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.8.1/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\MyUserName\AppData\Local\Temp\cc5rtLIQ.o: bad reloc address 0x148 in section `.rdata'
collect2.exe: error: ld returned 1 exit status

g++ のバージョンは 4.8.1 です。

また、 Mingw-buildsの mingw コンパイラと mingw-get インストーラーの両方を使用して、カスタム ビルド ブースト ライブラリを使用して例をビルドしてみました。mingw-builds は同じエラー メッセージを表示します。mingw-get のバージョンは Boost::Log をビルドすることさえできません。

ロギング ライブラリを mingw で動作させるにはどうすればよいですか?

4

2 に答える 2

2

コマンドラインを修正する必要があります:

g++ main.cpp -lboost_log -o logtest.exe

引数は指定された順序で処理され、シンボルはライブラリが検出された場合にのみライブラリから解決されます。

于 2013-08-26T14:39:06.693 に答える
0

次のコマンド ラインを使用して、gcc (Linux) でブースト ログの簡単な例をコンパイルすることしかできませんでした。

g++ -o main main.cpp -DBOOST_LOG_DYN_LINK -lboost_log -lpthread 
于 2013-11-23T22:07:50.797 に答える