3

Windows 7 で mingw32 コンパイラを使用して、ソースから qt-4.8.5 (オープンソース) をビルドしようとしています。

「構成」は正常に機能しますが、コンパイル (mingw32-make) は次の出力で失敗します。

D:\development\qt-4.8.5-mingw>mingw32-make                                                                                      
cd src/tools/bootstrap/ && D:/development/MinGW/bin/mingw32-make.EXE -f Makefile                                                
mingw32-make.EXE[1]: Entering directory 'd:/development/qt-4.8.5-mingw/src/tools/bootstrap'                                     
D:/development/MinGW/bin/mingw32-make.EXE -f Makefile.Release                                                                   
mingw32-make.EXE[2]: Entering directory 'd:/development/qt-4.8.5-mingw/src/tools/bootstrap'                                     
g++ -c -pipe -fno-keep-inline-dllexport -O2 -frtti -fexceptions -mthreads -Wall -Wextra -DUNICODE     -DQT_BOOTSTRAPPED -DQT_LITE_UNICODE -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_CODECS -DQT_NO_DATASTREAM -DQT_NO_GEOM_VARIANT -DQT_NO_LIBRARY -DQT_NO_QOBJECT -DQT_NO_STL -DQT_NO_SYSTEMLOCALE -DQT_NO_TEXTSTREAM -DQT_NO_THREAD -DQT_NO_UNICODETABLES -DQT_NO_USING_NAMESPACE -DQT_NO_DEPRECATED -DQT_NODLL -I'../../../include' -I'../../../include/QtCore' -I'../../../include/QtXml' -I'../../3rdparty/zlib' -I'd:/development/MSVS2008EXP/VC/INCLUDE' -I'd:/development/Microsoft SDKs/Windows/v6.1/include' -I'd:/development/MSVS2008EXP/VC/lib/' -I'd:/development/MS_SDKs/Windows/v6.1/Lib' -I'd:/DXSDK/Lib/x86' -I'../../../mkspecs/win32-g++-4.6' -o tmp/obj/release_shared/qisciicodec.o ../../corelib/codecs/qisciicodec.cpp                                                                          
g++: error: CreateProcess: No such file or directory                                                                            
Makefile.Release:333: recipe for target 'tmp/obj/release_shared/qisciicodec.o' failed                                           
mingw32-make.EXE[2]: *** [tmp/obj/release_shared/qisciicodec.o] Error 1                                                         
mingw32-make.EXE[2]: Leaving directory 'd:/development/qt-4.8.5-mingw/src/tools/bootstrap'                                      
Makefile:34: recipe for target 'release' failed                                                                                 
mingw32-make.EXE[1]: *** [release] Error 2                                                                                      
mingw32-make.EXE[1]: Leaving directory 'd:/development/qt-4.8.5-mingw/src/tools/bootstrap'                                      
Makefile:68: recipe for target 'sub-tools-bootstrap-make_default-ordered' failed                                                
mingw32-make.EXE: *** [sub-tools-bootstrap-make_default-ordered] Error 2                                                        

すなわち:

g++: error: CreateProcess: No such file or directory                                                                            

g++ は見つからないファイルを出力しないため、何が原因なのかわかりません。コマンドラインからg++、gcc、mingw32-makeを呼び出すことができ、それらはパスにあります。VC ディレクトリ、MS SDK ディレクトリを削除しましたが、これでも問題は解決しません。これはクリーンな「インストール」です。tar.gz の内容を抽出し、何も変更せずに configure を実行しました。configure に -I スイッチを使用して mingw インクルード パスを追加しても問題は解決しません。

これを修正するにはどうすればよいですか?

追加情報:
g++ バージョン: 4.7.1
mingw32-make バージョン: 3.82.90

4

1 に答える 1

0

理解した。(まあ、何が原因なのかはまだわかりませんが、それを機能させる方法は知っています)。

解決:

  1. qt.conf を qt の「bin」ディレクトリに配置します。

    [Paths]
    Prefix = d:/development/qt-4.8.5-mingw 
    

    プレフィックスは、qt インストールのパスです (スラッシュに注意してください)。

  2. バット ファイルを使用して構成およびコンパイルします。

    1. 構成するには:

      set QTDIR=D:\development\qt-4.8.5-mingw
      set QMAKESPEC=win32-g++
      set PATH=D:\development\MinGW\bin;D:\development\tools\Perl32\bin;D:\development\qt-4.8.5-mingw\bin 
      set PATH=%PATH%;c:\Windows\system32
      set INCLUDE=
      set LIB=
      set CPATH=
      set CPLUS_INCLUDE_PATH=
      set LANG=en
      
      
      configure -opensource -openssl
      

      パスには、32bit perl の bin ディレクトリ、mingw32 インストールの bin ディレクトリ、および qt インストールの bin ディレクトリを配置する必要があります。-opensslキーはオプションです (これが必要です)。

    2. コンパイルする:

      set QTDIR=D:\development\qt-4.8.5-mingw
      set QMAKESPEC=win32-g++
      set PATH=D:\development\MinGW\bin;D:\development\tools\Perl32\bin;D:\development\qt-4.8.5-mingw\bin 
      set PATH=%PATH%;c:\Windows\system32
      set INCLUDE=
      set LIB=
      set CPATH=
      set CPLUS_INCLUDE_PATH=
      set LANG=en
      
      
      mingw32-make
      
于 2013-07-09T18:52:41.133 に答える