在Windows7上使用mingw32编译Qt 4.8.5时出现“没有这个文件或目录”的错误。

3
我正在尝试使用mingw32编译器在Windows 7上从源代码构建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                                                        

I.e.:

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

由于g++没有打印出哪个文件找不到,我不确定是什么原因导致这个问题。 我可以通过命令行调用g++、gcc和mingw32-make,并且它们都在路径中。 我已经删除了VC目录、MS SDK目录,但这并没有解决问题。 这是一个干净的“安装”,我提取了tar.gz的内容,并在没有修改任何东西的情况下运行了配置。通过-I开关将mingw包含路径添加到配置中也无法解决问题。
我该怎么解决这个问题?
附加信息: g++版本:4.7.1 mingw32-make版本:3.82.90
1个回答

0

问题解决了。(虽然我仍然不知道是什么原因导致的,但我知道如何让它工作)。

解决方案:

  1. 将 qt.conf 放入 qt 的 "bin" 目录中。

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

    Prefix 是您的 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
      

      您应该将 32 位 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
      

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接