VSCode+Qt+CMake詳細教程
第一部分:環(huán)境準備與安裝
1. 安裝 VSCode
- 訪問 VSCode 官網(wǎng) 下載并安裝。
- 安裝完成后,打開 VSCode,安裝以下必備擴展:
- C/C++ (Microsoft): 提供 C/C++ 語言的 IntelliSense、調(diào)試等功能。
- CMake (Microsoft): 提供 CMake 項目的構建、調(diào)試、配置支持。
- CMake Tools (Microsoft):
CMake擴展的增強工具,是核心。 - (可選) Qt Configure (TheQtCompany): 幫助配置 Qt 環(huán)境,提供
.ui文件預覽等功能。 - (可選) Qt Tools (TheQtCompany): 提供 Qt 特有的語法高亮等。
2. 安裝 Qt
- 訪問 Qt 官網(wǎng) 下載 Qt Online Installer。
- 運行安裝程序,登錄或注冊 Qt 賬戶。
- 在選擇組件頁面,至關重要的一步:
- 選擇最新的 Qt 版本 (如
Qt 6.7.0)。 - 展開該版本,勾選以下組件:
MSVC 2019 64-bit(如果你在 Windows 上使用 Visual Studio 的編譯器) 或MinGW 11.2.0 64-bit(如果你使用 MinGW 編譯器) 或Android,iOS,macOS等 (根據(jù)你的目標平臺選擇)。
- 務必勾選
Sources和Debugging Tools for Windows(Windows MSVC 下),這對調(diào)試非常有幫助。 - 勾選 Qt Creator(雖然我們用 VSCode,但 Qt Creator 自帶了許多有用的工具,如
qmake,uic,moc等,這些工具在構建時是必需的)。
- 選擇最新的 Qt 版本 (如
3. 安裝 CMake
- 訪問 CMake 官網(wǎng) 下載安裝包。
- 安裝時,務必勾選 “Add CMake to the system PATH for all users”,這樣 VSCode 和終端才能找到它。
- 安裝完成后,打開終端 (CMD/PowerShell),輸入
cmake --version驗證是否安裝成功。
4. 安裝編譯器 (如果未安裝)
- Windows (MSVC): 安裝 Visual Studio 并勾選 “C++ 桌面開發(fā)” 工作負載。
- Windows (MinGW): 可以單獨安裝 MinGW-w64,但更簡單的方法是如上所述,在安裝 Qt 時直接勾選 MinGW 組件。
- Linux: 通常系統(tǒng)自帶 GCC/G++,可通過包管理器安裝 (
sudo apt install build-essentialon Ubuntu)。 - macOS: 安裝 Xcode Command Line Tools (
xcode-select --install)。
第二部分:配置 VSCode 環(huán)境
1. 配置 Qt 路徑
VSCode 需要知道 Qt 的安裝位置,以便 CMake Tools 擴展能找到 Qt 的庫和工具。
- 打開 VSCode 的設置 (
Ctrl+,)。 - 搜索
cmake kit。 - 找到
Cmake: Kits設置,點擊 “在 settings.json 中編輯”。 - 這會打開
settings.json文件。我們需要添加一個 “Kit”。
示例配置 (請根據(jù)你的實際路徑修改):
{
"cmake.configureOnOpen": false, // 可選:建議關閉,手動配置
"cmake.generator": "Ninja", // 可選:推薦使用更快的 Ninja 代替 NMake
"cmake.kits": [
{
"name": "Qt-6.7.0-MSVC2019_64",
"compilers": {
"C": "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe",
"CXX": "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe"
},
"environmentVariables": {
// 將 Qt 的 bin 目錄和編譯器的目錄添加到 PATH
"PATH": "C:/Qt/6.7.0/msvc2019_64/bin;C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64;${env:PATH}"
},
"qtDir": "C:/Qt/6.7.0/msvc2019_64" // 最關鍵的一行,指向你的 Qt 安裝目錄
}
]
}name: 給你的配置起一個易懂的名字。compilers: 指定 C 和 C++ 編譯器的完整路徑。environmentVariables: 設置臨時的 PATH 環(huán)境變量,確保構建時能找到moc,uic,rcc等 Qt 工具以及編譯器。qtDir: CMake Tools 擴展用這個變量來查找 Qt。
更簡單的方法:
很多時候,CMake Tools 會自動掃描系統(tǒng)并生成 Kits。安裝完上述軟件后,重啟 VSCode,點擊底部狀態(tài)欄的 “No Kit Selected” 或已選擇的 Kit 名稱,可能會自動彈出檢測到的 Kits 列表(包括上面配置的),直接選擇即可。
第三部分:創(chuàng)建并配置一個 CMake Qt 項目
1. 項目結構
創(chuàng)建一個新的項目文件夾,結構如下:
my_qt_app/ ├── CMakeLists.txt ├── main.cpp ├── MainWindow.cpp ├── MainWindow.h ├── MainWindow.ui (可選,UI文件) └── resources.qrc (可選,資源文件)
2. 編寫 CMakeLists.txt
這是 CMake 構建系統(tǒng)的核心配置文件。
# 指定 CMake 的最低版本要求。Qt6 推薦使用 3.16 或更高版本。
cmake_minimum_required(VERSION 3.16)
# 設置項目名稱和版本
project(MyQtApp VERSION 1.0.0 LANGUAGES CXX)
# 設置 C++ 標準
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# 自動調(diào)用 MOC、UIC、RCC
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
# 查找所需的 Qt 組件
# 這里的 Core Gui Widgets 是你的項目所依賴的 Qt 模塊
find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets)
# 如果你的 Qt 安裝在非標準路徑,可能需要手動設置 Qt6_DIR
# set(Qt6_DIR "C:/Qt/6.7.0/msvc2019_64/lib/cmake/Qt6")
# 添加可執(zhí)行文件目標
add_executable(${PROJECT_NAME}
main.cpp
MainWindow.h
MainWindow.cpp
# MainWindow.ui # 如果啟用了 AUTOUIC,通常不需要直接添加 .ui 文件
# resources.qrc # 如果啟用了 AUTORCC,通常不需要直接添加 .qrc 文件
)
# 將找到的 Qt 庫鏈接到你的可執(zhí)行文件
target_link_libraries(${PROJECT_NAME} PRIVATE
Qt6::Core
Qt6::Gui
Qt6::Widgets
)
# 在 Windows 上,如果是 GUI 應用程序(非控制臺),添加以下代碼
if (WIN32)
win32_gui_executable(${PROJECT_NAME})
endif()3. 編寫簡單的源代碼
main.cpp
#include <QApplication>
#include "MainWindow.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}MainWindow.h
#pragma once
#include <QMainWindow>
class MainWindow : public QMainWindow
{
Q_OBJECT // 必須的宏,用于支持 Qt 的信號/槽機制
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
};MainWindow.cpp
#include "MainWindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
// 設置窗口標題和大小
setWindowTitle("My First Qt App in VSCode");
resize(800, 600);
}
MainWindow::~MainWindow() {}第四部分:在 VSCode 中構建和運行
- 打開項目文件夾: 用 VSCode 打開
my_qt_app文件夾。 - 選擇 Kit: 點擊底部狀態(tài)欄的 “No Kit Selected”,從列表中選擇你之前配置好的 Kit (如
Qt-6.7.0-MSVC2019_64)。 - 選擇 Variant (構建類型): 點擊底部狀態(tài)欄的 “[Debug]”,可以選擇
Debug,Release,RelWithDebInfo等。 - 配置項目 (Configure):
- 按下
Ctrl+Shift+P打開命令面板。 - 輸入
CMake: Configure并執(zhí)行。或者點擊底部狀態(tài)欄的 “Configure” 按鈕。 - 這會讓 CMake 讀取你的
CMakeLists.txt,檢查依賴,并在項目根目錄生成一個build文件夾(默認)和CMakeCache.txt。
- 按下
- 構建項目 (Build):
- 按下
Ctrl+Shift+P,輸入CMake: Build并執(zhí)行。或者點擊底部狀態(tài)欄的 “Build” 按鈕 (一個小齒輪)。 - 編譯輸出會顯示在終端中。成功后,可在
build/Debug或build/Release文件夾中找到生成的.exe文件。
- 按下
- 運行項目 (Run):
- 按下
Ctrl+Shift+P,輸入CMake: Run Without Debugging?;蛘唿c擊底部狀態(tài)欄的 “Play” 按鈕。 - 你的 Qt 應用程序就會啟動!
- 按下
- 調(diào)試 (Debug):
- 首先在代碼中設置斷點 (點擊行號左側)。
- 然后點擊底部狀態(tài)欄的 “Debug” 按鈕 (一個帶蟲子的播放按鈕) 或按
F5。 - VSCode 會啟動程序并在斷點處暫停,你可以查看變量、調(diào)用堆棧等信息。
第五部分:常見問題與技巧 (FAQ)
- CMake 找不到 Qt?
- 檢查
settings.json中的qtDir路徑是否正確。 - 嘗試在
CMakeLists.txt中手動設置set(Qt6_DIR “你的Qt安裝路徑/lib/cmake/Qt6”)。
- 檢查
- 構建失敗,提示找不到
moc_MainWindow.cpp之類的文件?- 確保
CMakeLists.txt中設置了set(CMAKE_AUTOMOC ON)。 - 確保你的頭文件包含了
Q_OBJECT宏。 - 嘗試執(zhí)行
CMake: Delete Cache and Reconfigure命令,然后重新構建。
- 確保
- 如何添加
.ui文件或.qrc文件?- 將
.ui文件放在源碼目錄。 - 在
CMakeLists.txt的add_executable命令中不需要直接添加.ui文件。AUTOUIC會自動處理。 - 確保
.ui文件對應的頭文件(如MainWindow.h)中包含了使用ui->setupUi(this);的代碼。.qrc資源文件同理。
- 將
- 如何清理構建?
- 直接刪除項目根目錄下的
build文件夾,然后重新Configure和Build。
- 直接刪除項目根目錄下的
總結
VSCode + Qt + CMake 的組合提供了高度可定制化和現(xiàn)代化的開發(fā)體驗。雖然初始配置比 Qt Creator 稍顯復雜,但它提供了無與倫比的編輯器體驗、強大的擴展生態(tài)系統(tǒng)和對構建流程的更深層次控制。一旦配置完成,其流暢的開發(fā)體驗會讓你覺得物有所值。
這套組合是當前 Qt C++ 開發(fā)的主流選擇之一,它結合了:
- VSCode: 輕量級、插件豐富、生態(tài)強大的代碼編輯器。
- Qt: 強大的跨平臺應用開發(fā)框架。
- CMake: 跨平臺的自動化構建系統(tǒng),能生成用于編譯的 Makefile 或項目文件。
到此這篇關于VSCode+Qt+CMake詳細地講解的文章就介紹到這了,更多相關VSCode Qt CMake內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
淺析VSCode tasks.json中的各種替換變量的意思 ${workspaceFolder} ${file} ${
這篇文章主要介紹了關于VSCode tasks.json中的各種替換變量的意思 ${workspaceFolder} ${file} ${fileBasename} ${fileDirname}等,本文給大家介紹的非常詳細,對大家的學習或工作具有參考借鑒價值,需要的朋友可以參考下2020-03-03
Qt實現(xiàn)邊加載數(shù)據(jù)邊顯示頁面的示例代碼
無論是MFC框架還是QT框架,實現(xiàn)加載數(shù)據(jù)的等待效果都是很麻煩的,不像WEB端輕輕松松一句代碼就搞定了。本文將通過Qt實現(xiàn)邊加載數(shù)據(jù)邊顯示頁面的功能,需要的可以參考一下2022-01-01
QT Creator+OpenCV實現(xiàn)圖像灰度化的示例代碼
這篇文章主要為大家詳細介紹了QT如何利用Creator和OpenCV實現(xiàn)圖像灰度化效果,文中的示例代碼講解詳細,感興趣的小伙伴可以嘗試一下2022-12-12
C++中用指向數(shù)組的指針作函數(shù)參數(shù)
多維數(shù)組名作為函數(shù)參數(shù)傳遞:在二維數(shù)組中,數(shù)組名a是指向首行a[0]的指針,也就是說a=&a[0]; a[0]是指向首元素a[0][0]的指針,也就是說a[0]=&a[0][0]2013-10-10

