欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vscode+qt+qmake開發(fā)環(huán)境搭建(最全最詳細(xì))

 更新時間:2025年04月26日 09:44:36   作者:wlkkkkkkkk  
本文主要介紹了vscode+qt+qmake開發(fā)環(huán)境搭建,文中通過圖文示例介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

00. 前言

? 鑒于Qt官方IDE太過難用,VSCode+各種插件功能強大,遂采用VSCode來寫Qt項目。

01. 環(huán)境搭建

1. 需要安裝的軟件:

  • VSCode,官方最新版就行
  • Qt,版本隨意,本文主要針對較老版本使用Qmake構(gòu)建系統(tǒng)的項目

2. 環(huán)境變量:

Qt環(huán)境變量,需要配置Qt庫跟MinGW,盡量使用Qt安裝時自帶的MinGW

在這里插入圖片描述

VSCode插件,下面C/C++插件是必需的沒意見吧

在這里插入圖片描述

在這里插入圖片描述

02. 開始配置

1. 創(chuàng)建項目項目

先用Qt Creator創(chuàng)建個Qmake項目,最簡單的空白窗口,項目結(jié)構(gòu)如下

在這里插入圖片描述

2. 使用VSCode打開項目

在這里插入圖片描述

3. 配置C/C++插件

VSCode快捷鍵ctrl+shift+p打開命令面板,輸入c++,選擇編輯配置

在這里插入圖片描述

4. 編輯C/C++設(shè)置

編譯器路徑:下拉有得選就選你配置環(huán)境變量的Qt版本,沒有就自己復(fù)制路徑過來

在這里插入圖片描述

IntelliSense 模式:選擇安裝的gcc的架構(gòu),我安裝的是64位Qt,上面自帶的gcc編譯器也是64位,就選擇windows-gcc-x64

在這里插入圖片描述

頭文件路徑:這個主要是實現(xiàn)頭文件識別,要不然Qt的頭文件一直飄紅,也沒法自動跳轉(zhuǎn)頭文件,第一行是當(dāng)前像目錄下所有,第二行是安裝的Qt庫的頭文件路徑

在這里插入圖片描述

剩下的配置按需配置,不配置也不影響。選擇編輯json可以查看C/C++插件json版本的配置

在這里插入圖片描述

剛才配置的都在這里面了,現(xiàn)在引用Qt頭文件已經(jīng)不報錯了 c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**",
                "C:/Qt/5.15.2/mingw81_64/include/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "intelliSenseMode": "windows-gcc-x64",
            "compilerPath": "C:/Qt/Tools/mingw810_64/bin/g++.exe"
        }
    ],
    "version": 4
}

5. 配置task.json

選擇終端-運行任務(wù)-配置任務(wù)-使用模板創(chuàng)建task.json文件-Others;這一步無所謂,就是搞個模板,用我下面貼的一樣

在這里插入圖片描述

配置編譯Qt項目的task,這一步其實是跟Qt Creator相同的,我們打開Qt Creator,選擇項目,查看剛才的項目的項目構(gòu)建配置

在這里插入圖片描述

Qt Creator構(gòu)建步驟分析如下:

設(shè)置構(gòu)建目錄,也就是編譯出來的中間文件目錄

qmake,這一步其實是用qmake.pro配置文件編譯成makefile,并且將其中涉及的.ui、.qrc等編譯成cpp,都在構(gòu)建目錄中,下面是切換Debug/Release時不同的qmake編譯命令

#Debug
C:/Qt/5.15.2/mingw81_64/bin/qmake.exe D:\Code\Other\untitled\untitled.pro -spec win32-g++ "CONFIG+=debug" "CONFIG+=qml_debug" && C:/Qt/Tools/mingw810_64/bin/mingw32-make.exe qmake_all

#Release
C:/Qt/5.15.2/mingw81_64/bin/qmake.exe D:\Code\Other\untitled\untitled.pro -spec win32-g++ "CONFIG+=qml_debug" && C:/Qt/Tools/mingw810_64/bin/mingw32-make.exe qmake_all

make,真正的編譯cpp,MinGW使用的式mingw32-make.exe

mingw32-make.exe -j22 in D:\Code\Other\untitled\build

clean,這里使用還是mingw32-make.exe

mingw32-make.exe clean -j20 in D:\Code\Other\untitled\build

將上面Qt Creator構(gòu)建步驟轉(zhuǎn)換為task.json就行了,我把debug、relese全流程都加上了,非常簡單!

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            //在當(dāng)前項目目錄創(chuàng)建build文件夾
            "label": "mkdir", //任務(wù)名稱
            "type": "shell", //任務(wù)類型,定義任務(wù)是被作為進(jìn)程運行還是在 shell 中作為命令運行。
            "options": {
                "cwd": "${workspaceFolder}" //已執(zhí)行程序或腳本的當(dāng)前工作目錄,設(shè)置當(dāng)前項目文件夾
            },
            "command": "mkdir", //命令
            "args": [ //命令后面跟的參數(shù)
                "-Force",
                "build"
            ]
        },
        {
            "label": "qmake-debug",
            "type": "shell",
            "options": {
                "cwd": "${workspaceFolder}/build" //進(jìn)入build目錄
            },
            "command": "qmake", //qmake命令,這里沒用完整路徑,是因為配置到環(huán)境變量了 C:/Qt/5.15.2/mingw81_64/bin/qmake.exe
            "args": [ //跟的參數(shù)是不是很熟悉,就是上面分析出來的Qt Creator執(zhí)行流程
                "../${workspaceFolderBasename}.pro", //在build目錄上一級哦
                "-spec",
                "win32-g++",
                "\"CONFIG+=debug\"",
                "\"CONFIG+=console\""
            ],
            "dependsOn": [ //這是本條命令依賴的前置條件,就是上面創(chuàng)建build文件夾的task,直接執(zhí)行本task會自動先調(diào)用依賴的task
                "mkdir" //其實可以手動執(zhí)行一次,后面不用每次都執(zhí)行創(chuàng)建目錄的操作
            ]
        },
        {
            "label": "make-debug",
            "type": "shell",
            "options": {
                "cwd": "${workspaceFolder}/build"
            },
            "command": "mingw32-make", //MinGW這個也配置在環(huán)境變量了,不用寫完整路徑了 C:/Qt/Tools/mingw810_64/bin/mingw32-make.exe
            "args": [
                "-f",
                "Makefile.Debug", //-f 選擇makefile,這是qmake編譯出來的
                "-j7" //這個參數(shù)都知道吧,編譯用的線程數(shù)量
            ],
            "dependsOn": [
                "qmake-debug"
            ]
        },
        {
            "label": "run-debug",
            "type": "process", //運行就不能選擇shell執(zhí)行了,要選擇process
            "options": {
                "cwd": "${workspaceFolder}/build/debug" //沒在.pro配置DESTDIR,會生成到build目錄下面對應(yīng)目錄
            },
            "command": "${workspaceFolderBasename}.exe", //執(zhí)行的exe名字,一般當(dāng)前項目文件夾的名稱,自定義可以寫其他的
            "dependsOn": [
                "make-debug"
            ]
        },
        /
        {
            "label": "qmake-release",
            "type": "shell",
            "options": {
                "cwd": "${workspaceFolder}/build"
            },
            "command": "qmake",
            "args": [ //注意release跟debug參數(shù)的差異
                "../${workspaceFolderBasename}.pro",
                "-spec",
                "win32-g++",
                "\"CONFIG+=qtquickcompiler\""
            ],
            "dependsOn": [
                // "mkdir" //不用每次都創(chuàng)建吧
            ]
        },
        {
            "label": "make-release",
            "type": "shell",
            "options": {
                "cwd": "${workspaceFolder}/build"
            },
            "command": "mingw32-make",
            "args": [
                "-f",
                "Makefile.Release", //注意release跟debug參數(shù)的差異
                "-j7"
            ],
            "dependsOn": [
                "qmake-release"
            ]
        },
        {
            "label": "run-release",
            "type": "process",
            "options": {
                "cwd": "${workspaceFolder}/build/release"
            },
            "command": "${workspaceFolderBasename}.exe",
            "dependsOn": [
                "make-release"
            ]
        },
        {
            "label": "clean",
            "type": "shell",
            "options": {
                "cwd": "${workspaceFolder}/build"
            },
            "command": "mingw32-make",
            "args": [
                "clean"
            ]
        }
    ]
}

既然配置好了,那就可以開心的運行代碼,有兩種方式

終端-運行任務(wù)-選擇任務(wù),我們配置的task都在里面了,選擇run-debug/run-release就行,因為配置過depend[],前面qmake、make都被一條龍調(diào)用

在這里插入圖片描述

既然是VSCode,不用快捷鍵怎么可以,超級強大的ctrl+shift+p,輸入run,和手點流程一樣,回車,方向鍵選擇run-debug/run-release回車執(zhí)行就好了

在這里插入圖片描述

一條龍調(diào)用的命令在控制臺就會有輸出了,exe啟動后log也會在這輸出

在這里插入圖片描述

03. 配置斷點調(diào)試

? 上面配置的是以debug/release方式運行程序,那么要打斷點調(diào)試怎么辦呢?

1.配置launch.json

側(cè)邊欄選擇調(diào)試,點擊創(chuàng)建launch.json文件

在這里插入圖片描述

選擇c++就行,第一個第二個沒關(guān)系,反正生成的幾乎空白的模板

在這里插入圖片描述

選擇創(chuàng)建配置,選擇gdb啟動作為基礎(chǔ)模板,來在上面修改

在這里插入圖片描述

修改內(nèi)容如下,我放了自動生成的模板跟修改后的,可以對比看下修改了那些地方,實際使用記得刪除哈

{
    // 使用 IntelliSense 了解相關(guān)屬性。 
    // 懸停以查看現(xiàn)有屬性的描述。
    // 欲了解更多信息,請訪問: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 啟動", //模板,實際使用記得刪除
            "type": "cppdbg",
            "request": "launch",
            "program": "輸入程序名稱,例如 ${workspaceFolder}/a.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "/path/to/gdb",
            "setupCommands": [
                {
                    "description": "為 gdb 啟用整齊打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "將反匯編風(fēng)格設(shè)置為 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ]
        },
        {
            "name": "debug", //修改后
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/build/debug/${workspaceFolderBasename}.exe", //寫完整路徑
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}", //工作目錄,項目根目錄
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "C:/Qt/Tools/mingw810_64/bin/gdb.exe", //選擇MinGW中的gdb
            "setupCommands": [
                {
                    "description": "為 gdb 啟用整齊打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "make-debug", //這跟depend[]很像啊,make就行了,用make編譯出exe
        }
    ]
}

2. 運行調(diào)試

重新打開調(diào)試,剛才配置的調(diào)試配置已經(jīng)存在了

在這里插入圖片描述

打個斷點,點擊綠色三角,運行下看看效果

在這里插入圖片描述

04. 運行效果

run-debug及自動生成的目錄結(jié)構(gòu)、控制臺log,ctrl+c結(jié)束程序

在這里插入圖片描述

run-release

在這里插入圖片描述

debug斷點調(diào)試

在這里插入圖片描述

到此這篇關(guān)于vscode+qt+qmake開發(fā)環(huán)境搭建(最全最詳細(xì))的文章就介紹到這了,更多相關(guān)vscode qt qmake環(huán)境搭建內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于歐幾里德算法的使用

    基于歐幾里德算法的使用

    本篇文章介紹了,基于歐幾里德算法的使用。需要的朋友參考下
    2013-05-05
  • 基于c++ ege圖形庫實現(xiàn)五子棋游戲

    基于c++ ege圖形庫實現(xiàn)五子棋游戲

    這篇文章主要為大家詳細(xì)介紹了基于c++ ege圖形庫實現(xiàn)五子棋游戲,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • C++類與對象的基礎(chǔ)知識點詳細(xì)分析

    C++類與對象的基礎(chǔ)知識點詳細(xì)分析

    類和對象是兩種以計算機為載體的計算機語言的合稱。對象是對客觀事物的抽象,類是對對象的抽象。類是一種抽象的數(shù)據(jù)類型;變量就是可以變化的量,存儲在內(nèi)存中—個可以擁有在某個范圍內(nèi)的可變存儲區(qū)域
    2023-02-02
  • C++中的string庫函數(shù)常見函數(shù)的作用和使用方法

    C++中的string庫函數(shù)常見函數(shù)的作用和使用方法

    這篇文章主要介紹了C++中的string庫函數(shù)常見函數(shù)的作用和使用方法,庫函數(shù)的靈活應(yīng)用是程序員的一大重要技能,本文通過實例實例代碼給大家講解的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • C語言進(jìn)階輸入輸出重定向與fopen函數(shù)使用示例詳解

    C語言進(jìn)階輸入輸出重定向與fopen函數(shù)使用示例詳解

    這篇文章主要為大家介紹了C語言進(jìn)階輸入輸出重定向與fopen函數(shù)的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-02-02
  • Linux下用C++實現(xiàn)俄羅斯方塊

    Linux下用C++實現(xiàn)俄羅斯方塊

    這篇文章主要為大家詳細(xì)介紹了Linux下用C++實現(xiàn)俄羅斯方塊的相關(guān)資料,感興趣的小伙伴們可以參考一下
    2016-08-08
  • C語言數(shù)據(jù)結(jié)構(gòu)之循環(huán)鏈表的簡單實例

    C語言數(shù)據(jù)結(jié)構(gòu)之循環(huán)鏈表的簡單實例

    這篇文章主要介紹了C語言數(shù)據(jù)結(jié)構(gòu)之循環(huán)鏈表的簡單實例的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • QT實現(xiàn)二、八、十六進(jìn)制之間的轉(zhuǎn)換

    QT實現(xiàn)二、八、十六進(jìn)制之間的轉(zhuǎn)換

    本文主要介紹了QT實現(xiàn)二、八、十六進(jìn)制之間的轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • C語言實現(xiàn)從指定位置截取文件內(nèi)容

    C語言實現(xiàn)從指定位置截取文件內(nèi)容

    這篇文章主要為大家詳細(xì)介紹了如何利用C語言實現(xiàn)從指定位置截取文件內(nèi)容,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11
  • C++詳細(xì)講解模擬實現(xiàn)位圖和布隆過濾器的方法

    C++詳細(xì)講解模擬實現(xiàn)位圖和布隆過濾器的方法

    位圖(bitset)是一種常用的數(shù)據(jù)結(jié)構(gòu),常用在給一個很大范圍的數(shù),判斷其中的一個數(shù)是不是在其中。在索引、數(shù)據(jù)壓縮方面有很大的應(yīng)用。布隆過濾器是由布隆提出的,它實際上是一個很長的二進(jìn)制向量和一系列隨機映射函數(shù)。布隆過濾器可以用于檢索一個元素是否在一個集合中
    2022-06-06

最新評論