‘壹’ qt如何向cmd写入命令啊求大牛指导!!!跪谢。。。
运行 route、ipconfig 肯定没问题
QProcess p(0);
p.start("route");
p.waitForStarted();
p.waitForFinished();
qDebug()<<QString::fromLocal8Bit(p.readAllStandardError());
QProcess p(0);
p.start("ipconfig");
p.waitForStarted();
p.waitForFinished();
qDebug()<<QString::fromLocal8Bit(p.readAllStandardOutput());
dir 是命令行提供的命令,不是程序!
QProcess p(0);
p.start("cmd");
p.waitForStarted();
p.write("dir\n");
p.closeWriteChannel();
p.waitForFinished();
qDebug()<<QString::fromLocal8Bit(p.readAllStandardOutput());
‘贰’ 如何让Qt程序显示命令行信息
system("这里写所要执行的cmd命令");
比如我要打开计算机
#include“stdio.h”
void main(){
system("calc");
}
‘叁’ 命令行编译qt程序遭遇 No such file or directory
对于一个qt工程,qt-creator运行没有问题。后面为了提高自动化效率,写一个脚本通过命令行编译qt程序,发现编译报错,报错信息如下:
报错信息直接指明了原因:找不到头文件,说明要用的库的头文件路径不在 INCLUDE 变量里,所以编译时就找不到。
除了上面的报错,可能还会有如下的报错情况:
那为什么qt-creator运行没有问题呢?
因为 qt-creator 获取了一些环境变量如下:
解决办法就是自行把需要用到的路径加到相应的变量里。
如下通过 python 脚本来编译qt程序,把路径加到相应的 PATH 、 INCLUDE 、 LIB 环境变量里,这样编译的时候就能找到相应的文件
脚本里的路径添加都是临时生效,脚本执行完就失效了,所以不用担心会破坏系统环境变量。
‘肆’ 命令行编译qt程序 有几种方式
一、环境配置
1
要想使用Qt进行命令行编译,环境配置是必不可少的一步。环境配置好以后,我们才能使用相应的qmake,nmake等命令,并且链接到编译程序时所需要的头文件和库文件。
小提示:为了帮助大家解决环境配置的问题,新版Qt已经自带了相应的批处理文件,我们只要在编译前执行对应的批处理文件即可。
2
首先,我们在命令行编译时需要运行qmake.exe,因此我们需要将该文件的路径添加到PATH变量中。要想做到这一点,我们只需要执行Qt安装目录下的
Qt5.5.1\5.5\msvc2013\bin\qtenv2.bat 批处理即可。
3
其次,在编译过程中,我们还需要用到nmake命令,并且链接相应的头文件和库文件,以生成最终的可执行程序。要想做到这一点,我们只需要执行VS安装目录下的
D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\vcvars32.bat批处理即可。
注意:由于我安装的是Qt for VS2013 32位版,所以运行的是vcvars32.bat,如果你安装的是64位版,请运行vcvars64.bat。
4
至此,环境配置就大功告成了。关于这个环境配置,需要特别指出的是,这个配置是临时性的,只在当前命令行窗口有效;也就是说,你关闭命令行窗口后,均需要重新运行相应的批处理文件。
END
二、命令行编译
首先,将以上两个批处理文件复制到要编译的工程目录中。
然后,点击菜单“文件”-“打开命令提示符”,在该目录下打开命令行窗口。
执行批处理文件qtenv2.bat。注意,由于该批处理会跳转到Qt安装目录,我们执行完毕后需要回到我们的当前目录(我这里由于Qt安装目录与当前目录不在同一个磁盘,只要切换磁盘便回到当前目录了)。
执行批处理文件vcvars32.bat。
下面,正式开始编译。首先,生成工程文件。键入命令:
qmake -project
说明:生成的工程文件名会与你当前的目录名同名。例如,我当前的目录名为test,生成的工程名则为test.pro。
接着,输入qmake test.pro,生成相应的Makefile文件。
最后,键入nmake,生成最终的可执行文件。
‘伍’ 01_使用QT命令窗口编译代码
在Windows 10系统下,使用QT版本5.12.12进行代码编译,首先需要安装QT集成开发环境。下载路径为:/archive/qt/5.12/5.12.12。在QT的命令行工具中执行编译操作,该工具其实是一个CMD的快捷方式,其目标为qtenv2.bat文件,该文件中增加了QT的环境变量,并进入指定目录。
目录结构包含D:\Qt\Qt5.12.12\5.12.12\mingw73_64\bin,这是程序运行时依赖的DLL,以及D:/Qt/Qt5.12.12/Tools/mingw730_64\bin,这是QT环境中集成的MinGw环境。使用该环境时,优先使用QT中集成的MinGW,避免与系统中其他MinGW冲突。
进行hello qt代码编译时,使用g++命令在QT的命令行中执行,需要在QT安装目录的mingw73_64下使用头文件和依赖库。对于Qt5.7.0以上的版本,编译时必须使用c++11标准,使用参数为-std=c++0x。若使用自定义安装的MinGW中的g++,将无法找到g++入口,导致编译错误。生成的可执行程序仅能在QT命令行中运行,双击打开时将提示找不到DLL。
WidgetsTest项目涉及三个文件:WidgetsTest.h、WidgetsTest.cpp和main.cpp。使用moc工具生成WidgetsTest类的元对象系统代码文件。通过qmake生成.pro文件,并根据文件内容生成Makefile进行编译。
综上所述,使用QT命令窗口编译代码时,需要确保环境配置正确,选择合适的编译器和参数,并注意文件路径和依赖库的使用。通过上述步骤,可以顺利在Windows 10环境下使用QT版本5.12.12进行代码的编译和运行。