0

私はしばらく wxWidgets をコンパイルしようとしてきました。私は TDM-GCC を使用しており、ガイドhereに従っていますが、そのような運はありません。私の最後の数行mingw32-make -f makefile.gcc SHARED=1 UNICODE=1 BUILD=release MONOLITHIC=1

../../src/msw/thread.cpp: In member function 'void wxThread::Exit(wxThread::Exit
Code)':
../../src/msw/thread.cpp:1165:28: error: cast from 'wxThread::ExitCode {aka void
*}' to 'unsigned int' loses precision [-fpermissive]
     _endthreadex((unsigned)status);

makefile.gcc:4957: recipe for target 'gcc_mswudll\monodll_thread.o' failed
mingw32-make: *** [gcc_mswudll\monodll_thread.o] Error 1

誰でもアイデアはありますか?助けてください、私は本当に困惑しています。

4

2 に答える 2

0

{aka void*}精度をunsigned int失う[-fpermissive]

これは、32 ビットを予期して 64 ビットを取得した場合に発生します。通常、TDM のデフォルト -m64 ビット モードで 32 ビットを意図したコードをコンパイルする際の問題です。

精度を失うにはvoid*、64 ビット変数であるunsigned int必要があり、32 である必要があります。

警告を無効にして変数をダウングレードし、64 ビット マシンで実行すると、プログラムの実行中にポインタ エラー クラッシュが発生する可能性があります。

于 2015-04-28T16:00:05.793 に答える