使用命令行編譯Qt程序


 

下載Qt

在Qt的官網上必須得登陸才能下載,這讓我倍感煩躁,於是百度下找到這個鏈接http://download.qt.io/archive/qt/進入無需登陸即可下載,還能選擇一些歷史版本,因為我裝了VS2015,所以我選擇支持MSVC2015編譯套件
的Qt:
20190806202133.png
上面兩個都要安裝,一個用來生成32位程序,另一個用來生成64位程序

從命令行編譯Qt程序

新建一個文本文件,將其后綴改成.cpp,然后將下面代碼寫入其中:

#include<QApplication>
#include<QLabel>

int main(int argc, char*argv[])
{
  QApplication app(argc,argv);
  QLabel * label = new QLabel("Hello Qt!");
  label->show();
  return app.exec();
}

在兩個版本的Qt安裝完成后,在開始菜單可以找到Qt提供的命令行工具:
20190806205334.png
一個32位的,用來生成32位的Qt程序;一個64位的,用來生成64位的Qt程序;這里我選擇32位的Qt命令行工具:
20190807140106.png
這里-o參數指明了生成工程文件的名稱,如果不使用-o參數指明,默認名稱為當前文件夾的名稱,執行qmake -project
后將生成一個后綴為.pro的工程文件,然后在執行qmake 工程文件名稱.pro 命令后就生成了Makefile文件,
安裝VS2015后也會有命令行工具:
20190806220732.png
因為我要生成的是32位程序,所以要使用生成32位程序的VS命令行工具來編譯源碼:
20190807140428.png
找不到文件,這是因為從Qt4到Qt5一些基礎類模塊發生了變化,Qt也給出了解決方案:
https://wiki.qt.io/Transition_from_Qt_4.x_to_Qt5
我們在工程文件中直接加入一行"QT+=widgets",或者在生成工程文件時在qmake命令后面加上這行也行:
20190807141345.png
然后在用VS的命令行工具執行nmake Debug Release同時編譯調試版和發布版程序:
20190807141621.png
 
注意:

  • 不要在Qt的命令行中執行nmake命令,編譯時會有下面奇怪的錯誤:
    20190807141904.png

  • 不要使用生成64位程序的VS命令行工具去編譯32位Qt命令行生成的Makefile,否則鏈接時會報錯:
    20190807143054.png
    也不要用生成32位程序的VS命令行工具去編譯64位Qt命令行生成的Makefile,否則鏈接時會報:
    模塊計算機類型“X64”與目標計算機類型“x86”沖突錯誤

    執行nmake命令后,release和debug文件夾中會有可執行文件:
    20190807144008.png
    雙擊即可運行

    如果運行時提示缺失Qtxxxxx.dll則需要把Qt安裝目錄下的bin文件夾路徑添加到系統環境變量PATH中即可
    我這里安裝了32位和64位兩個版本的qt,如果程序運行時報:
    20190807144256.png
    一般32位程序加載64位的依賴庫,或者64位程序加載32位的依賴庫時會報錯;Qt的依賴庫在其安裝目錄下的bin
    文件夾下,如果當前是32位程序報這個錯誤時,只需要把32位Qt安裝目錄下的bin文件夾路徑提最前面就行,
    如果當前是64位程序報這個錯誤時,只需要把64位Qt安裝目錄下的bin文件夾路徑提最前面就可以;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM