CMakeLists.txt 文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| cmake_minimum_required(VERSION 3.5...3.16)
project(myApp VERSION 1.0 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_AUTOUIC ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTOMOC ON) set(CMAKE_INCLUDE_CURRENT_DIR ON)
find_package(QT NAMES Qt5 Qt6 REQUIRED COMPONENTS Widgets) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets)
set(SOURCES main.cpp mainwindow.cpp )
set(HEADERS mainwindow.h )
set(FORMS mainwindow.ui )
set(RESOURCES resources.qrc )
add_executable(${PROJECT_NAME} ${SOURCES} ${HEADERS} ${FORMS} ${RESOURCES})
target_link_libraries(${PROJECT_NAME} PRIVATE Qt${QT_VERSION_MAJOR}::Widgets)
|
源文件 main.cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| #include <QApplication> #include <QWidget>
int main(int argc, char *argv[]) { QApplication a(argc, argv);
QWidget w;
w.show();
return a.exec(); }
|
CMake 编译
这里是重点,要使用 Qt 的qtenv2.bat设置环境变量, 不然就要弄一堆 -DQt5_DIR=xxx -DQt6_DIR=xxx 之类的参数,很麻烦.
1
| cmake -S . -B build -G "MinGW Makefiles" -DCMAKE_PREFIX_PATH="E:/programes/Qt/QtLegacy/5.7/mingw53_32" -DCMAKE_C_COMPILER="E:/programes/Qt/QtLegacy/Tools/mingw530_32/bin/gcc.exe" -DCMAKE_CXX_COMPILER="E:/programes/Qt/QtLegacy/Tools/mingw530_32/bin/g++.exe"
|
1
| cmake -S . -B build -A win32 -DCMAKE_PREFIX_PATH="E:/programes/Qt/Qt/5.15.2/msvc2019"
|
1 2 3
| C:\Windows\System32\cmd.exe /A /Q /K E:\programes\Qt\Qt\6.10.1\mingw_64\bin\qtenv2.bat cmake -S . -B build/release -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release cmake --build build/release
|