1. 程式人生 > >Qt 之命令列編譯(nmake)

Qt 之命令列編譯(nmake)

簡述

前兩節講解了如何在 Visual Studio 和 Qt Creator 中搭建 Qt 開發環境,並分享了我們第一個小程式 - Hello World。

下面分享如何使用命令列來編譯 Qt 程式。當然,MSVC 和 MinGW 的配置和編譯過程相差無幾。

|

新建

新建一個“HelloWorld.cpp”檔案,編寫程式碼:

#include <QApplication>
#include <QLabel>

int main(int argc,char **argv)
{
    QApplication app(argc,argv);
    QLabel label("Hello World!"
); label.setAlignment(Qt::AlignCenter); label.resize(400, 300); label.show(); return app.exec(); }

儲存到指定位置(示例位置為 E:\HelloWorld)。

這裡寫圖片描述

開啟命令列

選擇“Visual Studio Tools”,開啟命令列。

這裡寫圖片描述

這裡寫圖片描述

生成 pro

切換到專案目錄下,執行命令:

qmake -project QT+=widgets

之所以要加 widgets 模組,是因為我們用到了 QApplication 和 QLabel,而這兩個類是屬於該模組的。

這裡寫圖片描述

這時,在專案目錄下會生成 .pro 專案檔案:

這裡寫圖片描述

使用 Notepad 開啟,檢視裡面的內容:

######################################################################
# Automatically generated by qmake (3.0) ?? 11? 20 22:58:54 2015
######################################################################

QT+=widgets          #專案依賴的模組qmake -project QT+=widgets指定
TEMPLATE = app #app代表可執行程式,及生成一個.exe TARGET = HelloWorld #可執行程式的名稱HelloWorld.exe INCLUDEPATH += . #包含路徑為當前路徑 # Input SOURCES += HelloWorld.cpp #專案包含的原始檔

qmake

執行:

qmake

這時,專案目錄下會分別生成一個 debug 和 release 目錄、以及 makefile 相關的檔案。

這裡寫圖片描述

nmake

執行:

nmake Debug Release

編譯完成後,在 debug 和 release 資料夾下會生成應用程式。

這裡寫圖片描述

執行

  • 方式一:進入 debug 或 release 目錄,直接雙擊 exe。

  • 方式二:命令列 cd release,HelloWorld.exe

這裡寫圖片描述

超級簡單,有木有 O(∩_∩)O~。

注意事項

  • 使用 cmd 命令列,提示:

    ‘nmake’不是內部或外部命令,也不是可執行的程式或批處理檔案。

    解決方式:

    1. 在環境變數 PATH 中新增 nmake 的路徑(D:\Program Files\Microsoft Visual Studio 12.0\VC\bin)。

    2. 執行 cmd 後,將“D:\Program Files\Microsoft Visual Studio 12.0\VC\vcvarsall.bat”拖拽進去,然後回車,繼續執行上述步驟。

  • 雙擊執行程式,提示:

    無法啟動此程式,因為計算機中丟失 Qt5Core.dll。嘗試重新安裝該程式以解決此問題。

相關推薦

Qt 命令編譯nmake

簡述 前兩節講解了如何在 Visual Studio 和 Qt Creator 中搭建 Qt 開發環境,並分享了我們第一個小程式 - Hello World。 下面分享如何使用命令列來編譯 Qt 程式。當然,MSVC 和 MinGW 的配置和編譯過程相差無幾

CCF命令選項java

試題編號: 201403-3 試題名稱: 命令列選項 時間限制: 1.0s 記憶體限制: 256.0MB 問題描述: 問題描述   請你寫一個命令列分析程式,用以分析給定的命令列裡包含哪些選項。每個命令列由若干個字串組成,它們之間恰好由一個空格分隔。這些

MySQL基礎命令操作

                                          &

【golang-GUI開發】qtsignal和slot

類型 取消 htm return 所在 turn hang nbsp type 想了很久,我決定還是先從signal和slot(信號槽)開始講起。 signal和slot大家一定不陌生,先看一段示例(選自文檔): 1 class Counter : public QOb

pytest 常用命令選項

  本文接上篇繼續簡介pytest常用的命令列選項。   8、-v(--verbose) 選項     使用-v/--verbose選項,輸出的資訊會更詳細。最明顯的區別就是每個檔案中的每個測試用例都佔一行,測試的名字和結果都會顯示出來,而不僅僅是一個點或字元。如下圖:      

《自己動手寫java虛擬機器》學習筆記-----命令工具java

專案地址:https://github.com/gongxianshengjiadexiaohuihui 首先是Cmd的類 /** * @ClassName Cmd * @Description TODO * @Author Mr.G * @Date 2018/10/9 9:40

《自己動手寫java虛擬機器》學習筆記-----命令工具go

     專案地址:https://github.com/gongxianshengjiadexiaohuihui 在今年三月份的時候,看過這本書,但是可能知識儲備不足,許多東西都一知半解,導致看到一半就看不下去了,現在覺得自己進步挺大的,決定重新拾起這本書,並且把

mysql 命令操作管理操作

1.查詢所有存在的資料庫 mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysq

mysql 命令操作高階sql語句

1.union,連線兩個以上的select語句的結果組合到一個結果集中,多個select語句中相同的資料會被刪除,多個union的select語句必須列數相同,比如第一個select選擇兩個列,那麼後續所有union的select語句都必須是兩列,不要求列的屬性一致,可以用u

mysql 命令處理事務

mysql中,事務是一些資料庫操作語句,有3個特點: 1.只有使用了InnoD引擎的資料庫或者表支援事務 2.事務可以用來維護資料庫完整性,保證成批的sql語句要麼全執行,要麼全不執行,不會出現部分執行失敗導致不一致的情況 3.事務用來管理insert,update,d

Windows CMD命令大全

命令簡介 cmd是command的縮寫.即命令列 。 雖然隨著計算機產業的發展,Windows 作業系統的應用越來越廣泛,DOS 面臨著被淘汰的命運,但是因為它執行安全、穩定,有的使用者還在使用,所以一般Windows 的各種版本都與其相容,使用者可以在Windo

java 命令匯入引用jar包

編譯:     E:/>javac -cp e:/jdom.jar test1.java 執行:    E:/>java -classpath e:/jdom.jar;  test1

db2命令整理

<pre code_snippet_id="276051" snippet_file_name="blog_20140407_7_6289192" name="code" class="html"> ----- 1:將excel中的資料匯入到資料庫中 先

python測試用例覆蓋率工具coverage教程(命令工具)

歡迎大家光臨我的部落格 簡介 coverage是一個檢測單元測試覆蓋率的工具,即檢查你的測試用例是否覆蓋到了所有的程式碼。 coverage命令列工具   當你通過pip install coverage成功安裝完coverage後,就會在pytho

Linux常用命令彙總2

15、使用gnome-screenshot實現螢幕截圖 使用gnome-screenshot實現延時10秒螢幕截圖。輸入下面命令,然後開啟Applications/Accessories/Text Editor 方法:gnome-screenshot -d 10 16、使用

QtQt自定義介面QMessageBox【轉】

簡述 通過前幾節的自定義窗體的學習,我們可以很容易的寫出一套屬於自己風格的介面框架,通用於各種窗體,比如:QWidget、QDialog、QMainWindow。 大多數窗體的實現都是採用控制元件堆積來完成的,只要思路清晰,再複雜的介面實現起來都遊刃有餘。下面我來列舉一個由QMessageBox擴充套

QtQt程序間通訊QProcess【轉】

簡述 前幾節裡,分享了程序通訊的幾種方式:Windows訊息機制、Shared Memory(共享記憶體),本節講解下關於程序通訊的另外一種方式-QProcess。 簡述 命令列讀取 說明 實現 更多參考 命令列引數啟動 說明 程序A-帶參啟動

QtQt程序間通訊IPC【轉】

簡述 程序間通訊,就是在不同程序之間傳播或交換資訊。那麼不同程序之間存在著什麼雙方都可以訪問的介質呢?程序的使用者空間是互相獨立的,一般而言是不能互相訪問的,唯一的例外是共享記憶體區。但是,系統空間卻是“公共場所”,所以核心顯然可以提供這樣的條件。除此以外,那就是雙方都可以訪問的外設了。在這個意義上,兩

AWS 命令介面CLI_管理AWS服務的統一工具

Amazon Web Services 誠聘精英。 Amazon Web Services (AWS) 是 Amazon.com 的一個充滿活力、不斷壯大的業務部門。我們現誠聘軟體開發工程師、產品經理、客戶經理、解決方案架構師、支援工程師、系統工程師以及設計師等人才。請訪問我

Apache Kafka系列(二) 命令工具CLI

Apache Kafka命令列工具(Command Line Interface,CLI),下文簡稱CLI。 1. 啟動Kafka   啟動Kafka需要兩步:   1.1. 啟動ZooKeeper  [[email protected] kafka_2.12-0.11.0.0]# bin/zo