CMake结合Visual Studio中开发Qt应用程序注意事项
Qt工程管理
個人比較偏愛于使用CMake來管理C++工程,因為只要編寫一個CMakeLists.txt文件,就可以在Windows和Mac上生成各自的IDE工程。在Windows上, CMake自然是生成Visual Studio工程文件了(新版Visual Studio貌似能直接倒入CMake工程了);Mac上生成XCode工程即可。開發Qt應用程序的時候,雖然有Qt Creator可以使用,甚至Qt Creator還可以直接導入CMake工程,但是其調試和錯誤提示功能實在太過寒磣,導致調試過程中各種郁悶。因此,本人在實際開發中一般使用CMake來管理Qt工程,然后在Visual Studio里面進行開發編譯。一般一個Qt應用程序的CMakeLists文件結構如下:
CMAKE_MINIMUM_REQUIRED(VERSION 3.8) PROJECT(Test C CXX)############################################################################# # Compiler and linker options ADD_DEFINITIONS(-Wall -DWIN32_LEAN_AND_MEAN) SET(CMAKE_AUTOMOC ON) SET(CMAKE_AUTORCC ON) SET(CMAKE_CXX_STANDARD 11) FILE(GLOB SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp") FILE(GLOB HEADER_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*.h") FILE(GLOB FORMS "${CMAKE_CURRENT_SOURCE_DIR}/*.ui") SET(RESOURCES ${CMAKE_CURRENT_SOURCE_DIR}/resources.qrc) ################################################################################# # EXTERNAL LIBS FIND_PACKAGE(Qt5 COMPONENTS Core Widgets Gui REQUIRED) qt5_wrap_ui(UI_HEADERS ${FORMS})INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR}/)################################################################################ # Compile target ADD_EXECUTABLE ( ${PROJECT_NAME} ${SOURCE_FILES}${HEADER_FILES}${UI_HEADERS} ${RESOURCES}) # https://www.kdab.com/using-cmake-with-qt-5/ qt5_use_modules(${PROJECT_NAME} Core Widgets Gui)其中,有一點要注意的是“INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/)”。這一行是為了包含UI生成的頭文件,否則在編譯的時候無法找到UI頭文件會報錯。
備注
使用CMake生成Qt工程,編譯運行的時候需要注意一些事情。如果機器上裝了多個版本的Qt庫的話,使用CMake生成Qt工程的時候,最容易出錯了。CMake在生成工程的時候,會去搜索用戶和系統的Path路徑,查找系統上安裝的Qt庫。如果工程編譯后,再去修改PATH中的Qt版本路徑,會出現一些詭異的現象。像我碰到的一些情況包括:(1)程序啟動不起來或者報錯“xxx找不到符號入口點”;(2)資源加載不到,典型的特征是使用QRC路徑(如“:/style/default.qss”)來加載資源會失敗;(3)程序無故崩潰或執行結果不正常。但凡出現了這樣一些情況,而恰好工程又是采用CMake管理的,那么就要考慮下Qt庫版本是不是混淆了。
轉載于:https://www.cnblogs.com/csuftzzk/p/cmake_visual_sutdio_qt.html
總結
以上是生活随笔為你收集整理的CMake结合Visual Studio中开发Qt应用程序注意事项的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求《冰与火之歌》英文原著1-5mobi格
- 下一篇: NationalAcademicScie