關於qt環境下的專案,這裡也使用了cmake進行構建,這樣可以減少對工程檔案的依賴,同時可以做到跨平台的使用。
目前使用的平台是:cmake3.16.4 + vs2015。
國際慣例,直接上工程目錄結構:
根目錄:
source目錄:、
同樣的我們看一下根目錄的寫法:
cmake_minimum_required(version 3.5.1)
project(
"eqt"
)message(status "$"
)#設定對c++11的支援
set(cmake_cxx_flags "$ -std=c++11"
)# 設定第三方標頭檔案
set(include_third $/source/thirdlibs/include/)
include_directories(system $
)# 設定第三方庫路徑
set(lib_boost $/source/thirdlibs/libs/widows/boost)
set(lib_opencv $/source/thirdlibs/libs/widows/opencv)
set(lib_tbb $/source/thirdlibs/libs/widows/tbb)
link_directories($$
$)# 配置qt
set(cmake_include_current_dir on)
# 開啟全域性moc,目標關聯的.h,.cpp
set(cmake_automoc on)
# 開啟全域性uic,目標關聯的.ui
set(cmake_autouic on)
# 開啟全域性rcc,用於編譯資源檔案
set(cmake_autorcc on)
# 查詢qt庫檔案
find_package( qt5 required
components widgets core gui qml
)include_directories($$
$ qt5::qml
)add_definitions($)
add_subdirectory(
"source"
)
目前沒有做平台化區分,當前的cmakelists.txt中未對linux平台進行配置。後續在平台移植下會進行補充和修改。
source下的僅僅是對當前目錄檔案的包含,所以不做過多說明。目前widget中是對qt專案的運用,所以直接看widget下的cmakelists.txt:
)#設定標頭檔案搜尋目錄
include_directories(
$/source/widget
)
cmake構建qt工程
如何選擇?using cmake to build qt projects 一文中說 儘管如此,如果簡單qt的工程都不知道怎麼用 cmake 構建,複雜的工程,就更不知道如何使用 cmake 了。還是從簡單的學起吧 include include qdebug int main int argc,c...
用CMake 構建Qt 專案
譯 用cmake構建qt專案 qtsdk中已經包含了qmake用於處理跨平台的編譯問題。然而,還存在其它編譯工具,比如autotools,scons和cmake.這些工具滿足不同的需求,比如外部依賴。當kde專案從使用qt3公升級到使用qt4時,整個專案將構建工具從autotools轉而使用cmak...
用CMake 構建Qt 專案
在本文中我們將只關注cmake本身,並且指出如何將它與qt結合起來。首先,我們看乙個簡單但典型的基於cmake的專案。從下面的列表可以看出,這個工程包括一些源 及文字檔案。ls cmakelists.txt hellowindow.cpp hellowindow.h main.cpp 最基本的,cm...