1

gcc の 2 つの異なるバージョン (4.6 と 4.7) をいくつかの構成で試しました。

make -f makefile.gcc USE_OPENGL=1 BUILD=debug SHARED=0 RUNTIME_LIBS=static UNICODE=1
make -f makefile.gcc MONOLITHIC=1 BUILD=debug SHARED=0 UNICODE=1
make -f makefile.gcc USE_OPENGL=1 BUILD=debug UNICODE=1

これがエラーです

../../src/msw/thread.cpp:525: error: cast from 'void*' to 'THREAD_RETVAL' loses precision
../../src/msw/thread.cpp: In member function 'wxThreadError wxThreadInternal::WaitForTerminate(wxCriticalSection&, void**, wxThread*)':
../../src/msw/thread.cpp:845: error: cast from 'void*' to 'DWORD' loses precision
../../src/msw/thread.cpp: In member function 'void wxThread::Exit(void*)':
../../src/msw/thread.cpp:1165: error: cast from 'void*' to 'unsigned int' loses precision

私のプラットフォームは Windows 7 64 ビットですが、64 ビット ライブラリをビルドしようとはしていません (意図的にではありません)

4

2 に答える 2

2

DWORD は 32 ビット値ですが、64 ビット アーキテクチャではポインターは 64 ビット値です。コードは、x86_64 では 64 ビット値、x86 では 32 ビット値に定義される DWORD_PTR を使用する必要があります。おそらく、これを 32 ビット アプリケーションとしてビルドし、ネイティブ 64 ビット アプリとしてビルドしようとするのを避ける必要があります。

于 2012-04-27T13:26:16.873 に答える
1

MinGW-w64 を使用して wxWidgets をビルドしようとすると、エラーが発生します。私の場合、問題の原因は、Strawberry Perl 5.14.2.1 (64 ビット) がインストールされていて、perl がパスにある gcc コンパイラをインストールしたことを認識していなかったことです。

于 2012-04-28T00:30:27.780 に答える