windows10下vscode+cmake編譯Qt5代碼


概述

  • 本文演示環境: windows10
  • cmake version:3.18
  • qt version: 5.14
  • vscode version: 1.54.1
  • 本文演示環境基於在線模式, 離線使用VScode,待驗證。

准備

  • 安裝 cmake, 添加cmake到系統環境變量path中, 打開命令行, 鍵入 cmake --version, 得到類似下面的輸出,則證明cmake安裝成功

    也可不用添加到系統環境變量,這只是我個人習慣,因為自己還有其他項目需要用到cmake, 添加到系統環境變量path后,使用更加便捷。 按需選擇。

  • 安裝VScode后,需要安裝插件: cmakecmake tools,

  • qt安裝,傻瓜式安裝,下一步下一步即可。

qt安裝需要需要注意

qt安裝時,需要選擇對應的工具包。 因為我使用的是Windows10 ,機器也安裝了 vs2015 + vs2017 , 這里以 Vs2015 x64為例。 我的選擇如下圖

我這里安裝的目錄如下:

C:\major\development\qt_5.14.2\install

其中,C:\major\development\qt_5.14.2\install\5.14.2\msvc2015_64目錄待會用得上,下面講。

Qt creator

使用Qt Creator, 創建一個基於cmake編譯的widgets項目,名為demo_qt,演示使用嘛, 畢竟要看到效果,其他類似

創建結束后,注意, 需要找到文件ui_dialog.h,並將文件ui_dialog.h拷貝到創建的項目下與 CMakeLists.txt同級目錄,(踩坑總結: 使用Vscode+cmake+qt編譯時,提示找到不到該文件)

VScode + qt+ cmake

使用Vscode打開上面創建的項目demo_qt所在文件夾。

  • 配置 cmake . 按下 ctrl + ,(VS code左下角 manage -> settings)

    輸入: cmake, 配置cmake.exe所在的絕對路徑。

  • 配置 CMakeLists.txt文件,需要自己手動增加如下的代碼

set(CMAKE_PREFIX_PATH "C:/major/development/qt_5.14.2/install/5.14.2/msvc2015_64")

這里的路徑, 就是上面qt安裝的工具包所在路徑,一定要設置這行,這一代碼的目的是設置cmake找到qt5對應的 .cmake文件(qt5gui.cmake qt5core.cmake之類的)。

CmakeLists.txt

不習慣qt創建的CMakeLists.txt文件語法,自己改了部分,全文內容如下

cmake_minimum_required(VERSION 3.5)
project(demo_qt LANGUAGES CXX)
# ----------------------------------------------------------------------------------
# 手動添加下面這一行代碼
set(CMAKE_PREFIX_PATH "C:/major/development/qt_5.14.2/install/5.14.2/msvc2015_64")

# set(Qt5_DIR             "${CMAKE_PREFIX_PATH}/lib/cmake/Qt5")
# set(Qt5Widgets_DIR      "${CMAKE_PREFIX_PATH}/lib/cmake/Qt5Widgets")
# set(Qt5Gui_DIR          "${CMAKE_PREFIX_PATH}/lib/cmake/Gui")
# set(Qt5Core_DIR         "${CMAKE_PREFIX_PATH}/lib/cmake/Qt5Core")
# set(QT_QMAKE_EXECUTABLE "${CMAKE_PREFIX_PATH}/bin/qmake.exe")
# ----------------------------------------------------------------------------------
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOUIC ON) 
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(Qt5 COMPONENTS Widgets REQUIRED)

# -----------------------------------------------------------------------------
# 個人更習慣下面的方式
file(GLOB_RECURSE src_files ${CMAKE_CURRENT_SOURCE_DIR}/*.cc)
file(GLOB_RECURSE inc_files ${CMAKE_CURRENT_SOURCE_DIR}/*.h)
file(GLOB_RECURSE ui_files ${CMAKE_CURRENT_SOURCE_DIR}/*.ui)

# -----------------------------------------------------------------------------
# 創建項目 ${PROJECT_NAME} 是我手動替換的
add_executable(${PROJECT_NAME} ${inc_files} ${src_files} ${ui_FILES} )

# ----------------------------------------------------------------------------
# ${PROJECT_NAME} 是我手動替換的
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Widgets)

cmake語法不是本文的重點,請移步 cmake官網

編譯開始

到這里,目錄結構應該是這樣的

使用快捷鍵: ctrl + shift + p, 鍵入命令執行編譯。

1.先 cnmake:configure

ctrl + shift + p, 鍵入命令cmake:configure執行配置,生成makefile文件。 該命令會在程序所在主目錄創建名為Build的目錄,存放輸出結果:

2. cmake:build

ctrl + shift + p,鍵入: cmake:build. 編譯后,查看結果

編譯結果, 正確,沒有error(s)

此時,可以看到 build目錄下的 debug目錄下已經生成了 對應的可執行程序

3. cmake:debug

  • ctrl + shift + p,鍵入命令: cmake:debug. 運行起來, 程序一閃而過, 且出現如下的輸出提示

    明白了, 程序demo_qt.exe所在目錄 缺少qt運行文件,比如:Qt5Guid.dll, Qt5Cored.dll 等。
  • 使用 windeployqt.exe 打包 demo_qt所需的運行環境。windeployqt.exe所在目錄如下
C:\major\development\qt_5.14.2\install\5.14.2\msvc2015_64\bin

這時我的qt安裝目錄, 請自行對應。
回到 build/debug目錄,命令行轉到此目錄, 鍵入命令如下命令

 C:\\major\\development\\qt_5.14.2\\install\\5.14.2\\msvc2015_64\\bin\\windeployqt.exe demo_qt.exe

執行后,等待自動拷貝。 拷貝結束后,會發現debug目錄多了很多文件

  • 回到VScode, 再次執行命令: cmake:debug, 會發現程序調試運行成功。


免責聲明!

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



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