Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ QT5将项目名称附加到每个源文件名,编译错误_C++_Qt_Compiler Errors_Qt5 - Fatal编程技术网

C++ 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 我不知道怎么修理它。我在网上搜索了很多东西,但没有找到任何有用的。 我甚至尝试从命令提示符编译,但我不擅长命令提示符编译,因

我想开始学习QT。我没有用QT creator加载QT5 MINGW编译器,我正在尝试构建名为affine的预附加示例。问题是,我认为QT5在每个源文件中嵌入了项目名称,因此给出了找不到文件的错误。相似的东西

    :-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),并尝试了它。你是对的,这是一个选择。红色警告:-)谢谢。