一、新建CMakeLists.txt
? ? ? ? 可以在工程目錄下新建一個(gè)名為CMakeLists.txt文件,
亦或是,在Qtcreator中,右鍵項(xiàng)目,添加新文件,選擇General中的Empty?File,修改名稱為CMakeLists.txt。
?
?此時(shí),你會看見生成了一個(gè)叫other?files的文件夾,里面就有CMakeLists.txt文件
二、編寫CMakeLists.txt
1.#設(shè)置cmake版本號(視自己cmake版本為定)
2.cmake_minimum_required(VERSION 3.4.0)
3.
4.#設(shè)置工程名稱
5.project(QtDemo)
6.
7.#設(shè)置工程包含當(dāng)前目錄,非必須
8.set(CMAKE_INCLUDE_CURRENT_DIR ON)
9.
10.#打開全局moc,設(shè)置自動生成moc文件,一定要設(shè)置
11.set(CMAKE_AUTOMOC ON)
12.#打開全局uic,非必須
13.set(CMAKE_AUTOUIC ON)
14.#打開全局rcc,非必須,如需打開,注意修改33行的qrc文件名
15.#set(CMAKE_AUTORCC ON)
16.
17.#查找需要的Qt庫文件,最好每一個(gè)庫都要寫,Qt也會根據(jù)依賴關(guān)系自動添加
18.find_package(Qt5Widgets)
19.find_package(Qt5Core)
20.find_package(Qt5Gui)
21.
22.#查找當(dāng)前文件夾中的所有源代碼文件,也可以通過Set命令將所有文件設(shè)置為一個(gè)變量
23.FILE(GLOB SRC_FILES "./*.cpp")
24.#查找設(shè)置當(dāng)前文件夾中所有的頭文件
25.FILE(GLOB HEAD_FILES "./*.h")
26.#查找設(shè)置當(dāng)前文件夾中所有的ui文件
27.FILE(GLOB UI_FILES "./*.ui")
28.
29.#通過Ui文件生成對應(yīng)的頭文件,一定要添加
30.qt5_wrap_ui(WRAP_FILES ${UI_FILES})
31.
32.#添加資源文件,非必須,一旦采用,注意修改相應(yīng)的qrc文件名
33.#set(RCC_FILES rcc.qrc)
34.
35.#將ui文件和生成文件整理在一個(gè)文件夾中,非必須
36.source_group("Ui" FILES ${UI_FILES} ${WRAP_FILES} )
37.
38.#創(chuàng)建工程文件
39.add_executable(${PROJECT_NAME} ${SRC_FILES} ${HEAD_FILES} ${RCC_FILES} ${WRAP_FILES})
40.
41.#添加Qt5依賴項(xiàng)
42.target_link_libraries(${PROJECT_NAME} Qt5::Widgets Qt5::Core Qt5::Gui)
三、編譯與運(yùn)行
????????在工程文件下新建一個(gè)“build”目錄
?????????
1、qtcreator編譯
? ? ? ? 左側(cè)找到“項(xiàng)目”后點(diǎn)擊,在“構(gòu)建設(shè)置”中找到“構(gòu)建步驟”
? ? ? ? “構(gòu)建目錄”選擇我們新建的build文件夾
? ? ? ? 刪除“qmake”,然后點(diǎn)擊“添加構(gòu)建步驟”中的“自定義處理步驟”
? ? ? ? 命令一欄中,填寫 “?cmake”
? ? ? ? 參數(shù)填寫? “../”
? ? ? ? make?不用刪除,不過要保證在cmake下面,參數(shù)選擇 -j4
????????(-j4?表示用多少個(gè)線程進(jìn)行編譯? ?你要是線程多,可以 -j16或者-j8)
? ? ? ? ?設(shè)置好后,項(xiàng)目處構(gòu)建加運(yùn)行,嚯嚯 ,跑起來了!
????????
?2、終端編譯
? ? ? ? 在build目錄下,開啟終端,然后輸入命令:“cmake ../ && make ”(注:make后面參數(shù)-j4?可加可不加)
? ? ? ? 然后就會看見build目錄下生成這些文件
????????
? ? ? ? ?qt_demo就是生成的可執(zhí)行程序
? ? ? ? 然后終端運(yùn)行 ./qt_demo
? ? ? ? 就會看見界面了
????????文章來源:http://www.zghlxwxcb.cn/news/detail-401514.html
? ? ? ?文章來源地址http://www.zghlxwxcb.cn/news/detail-401514.html
到了這里,關(guān)于手把手教CMake編譯Qt5工程的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!