C++ QT5将项目名称附加到每个源文件名,编译错误
我想开始学习QT。我没有用QT creator加载QT5 MINGW编译器,我正在尝试构建名为affine的预附加示例。问题是,我认为QT5在每个源文件中嵌入了项目名称,因此给出了找不到文件的错误。相似的东西C++ QT5将项目名称附加到每个源文件名,编译错误,c++,qt,compiler-errors,qt5,C++,Qt,Compiler Errors,Qt5,我想开始学习QT。我没有用QT creator加载QT5 MINGW编译器,我正在尝试构建名为affine的预附加示例。问题是,我认为QT5在每个源文件中嵌入了项目名称,因此给出了找不到文件的错误。相似的东西 :-1: error: ..affinemain.cpp: No such file or directory 而文件名只是 main.cpp 我不知道怎么修理它。我在网上搜索了很多东西,但没有找到任何有用的。 我甚至尝试从命令提示符编译,但我不擅长命令提示符编译,因
:-1: error: ..affinemain.cpp: No such file or directory
而文件名只是
main.cpp
我不知道怎么修理它。我在网上搜索了很多东西,但没有找到任何有用的。
我甚至尝试从命令提示符编译,但我不擅长命令提示符编译,因为我对QT是新手,之前我完全是在visual studio中使用IDE和eclipse for java开发的,所以我不知道make file和编译器命令行参数。
有人能帮我解决这个问题吗?你们能告诉我为什么编译器要用源文件名附加项目名吗?
提前感谢我遇到了同样的问题,我的解决方案可能会对您有所帮助 我现在正在使用Qt5.0.1,有两个发行版可以在windows上使用它:Qt5.0.1-mingw和Qt5.0.1-msvc2010。 我不得不使用mingw,我的设置中有一个问题,path中忽略了“/” 所以根据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.
因此,我们可以看到编译器忽略了“\”,文件名与目录名合并
解决这个问题的方法是使用工具(GCC和Binutils的最低限度端口)。还有一个GNU实用程序的集合,如bash、make、gawk和grep,允许构建依赖传统UNIX工具的应用程序和程序。在我们的例子中是-g++
MSYS没有随Qt5.0.1-mingw一起提供,g++也没有使用它,但是在PATH环境变量中提供MSYS会破坏系统
我已经安装了用于git scm的MSYS,因此我的路径包含指向与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++的问题仍然悬而未决。我无法置评
重要提示:请先删除release and debug文件夹(编译版)中的所有文件,然后再尝试autor…MSYS不需要用于MinGW(-w64)GCC。您不应该将
msysgit/bin
添加到系统范围的路径中。删除该选项后,在重新运行qmake后,您可能会有更多的运气。MSYSgit应该安装gitbash的快捷方式,它不需要任何路径修改。如果您想使用cmd中的基本git命令,请在PATH中保留。/git/cmd
部分。对,MSYS不是必需的,但问题是它为什么/如何破坏g++。因为它确实打破了它。我没有故意添加'sysgit/bin',它们是在安装过程中以静默方式添加的。正如我所说,git(在Console2中)和qmake在没有它们的情况下都可以工作。很好地将“../git/cmd”添加到路径中,以便从cmd运行git。我将把这一点补充到答案中。谢谢。你的msysgit是从哪里来的?每次我安装它时,它都提供了向路径添加git/bin、git/cmd或nothing的选择,并带有一个关于向路径添加git/bin的大警告。我很久以前就从官方网站安装了它,所以我现在不记得所有细节。但是,我刚刚从下载了最新版本的Git(1.8.1.2),并尝试了它。你是对的,这是一个选择。红色警告:-)谢谢。