我遇到了同样的问题,我的解决方案可能会对您有所帮助。
我现在正在使用 Qt5.0.1,并且有两个发行版可以在 Windows 上使用它:Qt5.0.1-mingw 和 Qt5.0.1-msvc2010。我不得不使用 mingw,但我的设置存在一个问题,即路径中的“/”被忽略了。
所以根据Qt Creator,编译器被调用来处理文件mainwindow.cpp,这个文件被传递给它
g++ /*truncated*/ ..\qt-example\mainwindow.cpp
以下是完整的编译器输入:
g++ -c -pipe -fno-keep-inline-dllexport -g -frtti -Wall -Wextra -fexceptions -mthreads -DUNICODE -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_OPENGL_ES_2 -DQT_OPENGL_ES_2_ANGLE -DQT_NEEDS_QMAIN -I..\qt-example -I"..\..\..\..\..\..\Qt\Qt5.0.1\5.0.1\mingw47_32\include" -I"..\..\..\..\..\..\Qt\Qt5.0.1\5.0.1\mingw47_32\include\QtWidgets" -I"..\..\..\..\..\..\Qt\Qt5.0.1\5.0.1\mingw47_32\include\QtGui" -I"..\..\..\..\..\..\Qt\Qt5.0.1\5.0.1\mingw47_32\include\QtCore" -I"debug" -I"." -I"." -I"..\..\..\..\..\..\Qt\Qt5.0.1\5.0.1\mingw47_32\mkspecs\win32-g++" -o debug\mainwindow.o ..\qt-example\mainwindow.cpp
并产生了错误。
g++.exe: error: ..qt-examplemainwindow.cpp: No such file or directory
g++.exe: fatal error: no input files
compilation terminated.
因此,我们可以看到“\”被编译器忽略,文件名与目录名合并。
该问题的解决方案是使用的工具 - MinGW(GCC 和 Binutils 的极简端口)。还有MSYS - 一组 GNU 实用程序,例如 bash、make、gawk 和 grep,允许构建依赖于传统 UNIX 工具的应用程序和程序。在我们的例子中 - g++。
MSYS 没有随 Qt5.0.1-mingw 一起提供,g++ 也没有使用它,但是在 PATH 环境变量中提供 MSYS 会破坏系统。
MSYS用于我已安装的 git scm,因此我的路径包含与 git 捆绑的 MSYS 的链接。所以我的 PATH 环境变量中有下一条路径。
C:\Program Files (x86)\git\bin;C:\Program Files (x86)\git\cmd
我还没有找到 Qt Creator 或 g++ 是如何使用 MSYS 的,也没有找到它的链接位置,但是当我从 PATH 中删除了下一个路径时:
C:\Program Files (x86)\git\bin;
并重新启动 Qt Creator - g++ 成功编译了我的文件,它工作正常。为什么/如何影响不应使用与 git 一起安装的 MSYS utils 的 Qt Creator/g++ 的问题仍然存在。