『壹』 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進行代碼的編譯和運行。