首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用MinGW通过命令行编译Qt应用程序?

如何使用MinGW通过命令行编译Qt应用程序?
EN

Stack Overflow用户
提问于 2012-02-25 09:45:18
回答 2查看 4.3K关注 0票数 1

我已经下载了MinGW的最新Qt版本,并且我有与Qt兼容的正确的MinGW版本。当我尝试创建项目时,g++无法找到我的源文件,即使它与项目文件在同一文件夹中。

这些是我遵循的步骤(所有项目和源文件都在T:\QtTest中):

代码语言:javascript
复制
T:\QtTest> qmake -project
T:\QtTest> qmake
T:\QtTest> make

输出是这样的:

代码语言:javascript
复制
T:\QtTest> make
mingw32-make -f Makefile.Debug
mingw32-make1: Entering directory `T:/QtTest’
g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I“c:\Qt\4.8.0\include\QtCore” -I“c:\Qt\4.8.0\include\QtGui” -I“c:\Qt\4.8.0\include” -I”.” -I“c:\Qt\4.8.0\include\ActiveQt” -I“debug” -I“c:\Qt\4.8.0\mkspecs\default” -o debug\main.o main.cpp
g++: main.cpp: no such file or directory
g++: no input files
mingw32-make1: *** [debug/main.o] Error 1
mingw32-make1: Leaving directory `T:/QtTest’
mingw32-make: *** [debug] Error 2

我不知道为什么它找不到"main.cpp“文件,因为它与项目文件在同一目录中。即使我将"main.cpp“替换为完整路径("T:\QtTest\main.cpp"),它仍然找不到它。我做错了什么?

下面是我的项目结构:(main.cpp是我唯一写的文件,其他的都是由qmake生成的)

代码语言:javascript
复制
T:\QtTest\main.cpp 
T:\QtTest\Makefile
T:\QtTest\Makefile.debug
T:\QtTest\Makefile.release
T:\QtTest\QtTest.pro
T:\QtTest\debug\
T:\QtTest\release\

我的g++版本是4.4.0,这是Qt安装程序建议的版本,可以在与Qt for MinGW安装程序相同的页面上下载。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-25 21:15:08

问题解决了。

它与MinGW、Qt或qmake生成的makefile没有任何关系。我发现这完全是由Windows注册表中的一个自定义条目引起的。我将这个解决方案发布给任何遇到同样问题的人:

不久前,我在HKEY_CURRENT_USER \ Software \ Microsoft \ Command Processor的注册表中创建了一个名为Autorun的条目,它使CMD.exe在自定义工作目录中启动,这是我想要做的事情(所以我遵循了本页中关于“如何更改命令提示符的默认启动目录”:http://windowsxp.mvps.org/autoruncmd.htm)中详细介绍的步骤。

好吧,我完全忽略了该页面中的CAUTION部分,该部分指出“使用本文提到的自动运行值更改当前目录可能会影响批处理脚本的功能”。是啊,我真丢脸。

因此,如果您遇到同样的问题,无法使用qmake创建Qt项目,并且项目结构和makefile中的其他内容看起来都没有问题,请验证注册表中是否有可能更改命令提示符的启动目录的内容。

票数 1
EN

Stack Overflow用户

发布于 2012-02-25 12:04:52

你安装MSYS了吗?如果来自MSYS的sh.exe位于系统路径上,则可能与windows样式路径的解释冲突。请查看文档here

如果这不是问题所在,那么删除项目文件夹中除源文件之外的所有内容,然后重新开始使用qmake -project。在该步骤之后,打开.pro文件并验证内容是否正确。对于一个非常基本的项目,我会得到这样的结果:

代码语言:javascript
复制
TEMPLATE = app
TARGET = 
DEPENDPATH += .
INCLUDEPATH += .
# Input
HEADERS += widget.h
FORMS += widget.ui
SOURCES += main.cpp widget.cpp

接下来的两个步骤,先运行qmake,然后运行make应该可以正常工作。如果不是,则说明您遵循的步骤没有问题,系统/环境有问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9440384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档