3

スタブ Qt アプリケーションがあり、コンパイラ エラーが発生し続けます

#include <QApplication>

int main(int argc, char *argv[])
 {
     return 0;
 }

私はコマンドqmake -projectqmakeコマンドを使用しましたが、私が知る限り、彼らは正しく仕事をしました。その後、コマンド ラインで呼び出すmakeと、次のエラーが表示されます。

g++ -c -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT
-DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I
'../../../../qt/include/QtCore' -I'../../../../qt/include/QtCore' -I'../../../..
/qt/include/QtGui' -I'../../../../qt/include/QtGui' -I'../../../../qt/include' -
I'.' -I'c:/qt/include/ActiveQt' -I'release' -I'.' -I'../../../../qt/mkspecs/defa
ult' -o release/Main.o Main.cpp
cc1plus.exe: Invalid option 'threads'
make[1]: *** [release/Main.o] Error 1
make: *** [release] Error 2

Google で検索すると、スレッドを維持することは重要ですが、このエラーを修正する方法は重要ではないことがわかります。どんな助けでも大歓迎です。

編集(OPが残した回答からコピー):

私は今得ます:

g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-rel oc 
-Wl,-s -pthread -Wl -Wl,-subsystem,windows -o release/raytrace.exe 
object_scr ipt.raytrace.Release  -L'c:/qt/lib' -lmingw32 -lqtmain -lQtGui -lgdi32 
-lcomdlg3 2 -loleaut32 -limm32 -lwinmm -lwinspool -lmsimg32 -lQtCore -lkernel32 
-luser32 - lshell32 -luuid -lole32 -ladvapi32 -lws2_32 
g++: unrecognized option `-pthread' 
/cygnus/cygwin-b20/H-i586-cygwin32/i586-cygwin32/bin/ld: cannot open -lmsimg32: 
No such file or directory collect2: 
ld returned 1 exit status make[1]: *** 
[release/raytrace.exe] Error 1 make: *** [release] Error 2
4

4 に答える 4

3

++マイロット

私は MinGW のみを使用して Windows で Qt をコンパイルします。これが、必要なものがすべて揃っていることを確認する最も簡単な方法です。

オープン ソース Qt バージョンのリンクは次のとおりです: http://trolltech.com/downloads/opensource/appdev/windows-cpp

「または MinGW コンパイラを含む Qt をダウンロード: サイズ: 149,3 Mb」リンクを使用します。

MinGW を使用するもう 1 つの方法は、Qt を MinGW でコンパイルしてからアプリケーションをコンパイルすることですが、MSYS でコンパイルするか、単に MinGW を使用するかによって異なります。

于 2008-10-14T18:57:45.893 に答える
2

以前、Web からダウンロードした MingW をインストールするときに同様の問題がありましたが、Qt のインストール中に、Qt と互換性のあるバージョンの MingW をダウンロードするように求められます。Qtインストーラーから尋ねられたときにインストールしようとしましたか?

于 2008-10-14T00:28:26.943 に答える
0

元の質問ではなく、質問者からのその後の回答に基づいています。

MSYSプロンプトから「ls/mingw / lib / libmsimg32.a」を実行し、そのファイルがあるかどうかを確認します。私のインストールはそうです(MinGW GCC 3.4.5)。そのファイルがある場合は、-L / mingw/libを追加する必要があるかもしれません。ファイルがない場合は、MinGWのWindowsAPI部分のインストールを見逃している可能性があります。

いずれにせよ、-pthreadを削除してください。Win32APIを使用しています。

これが機能しない場合は、使用しているMinGWのバージョンを指定する必要があります。また、MSYSを使用している場合は、MSYSのバージョンを指定する必要があります。

于 2008-10-14T00:22:51.447 に答える