Настройка окружения
Перед началом убедитесь, что:
- Установлен Qt (желательно версии 5.15 или 6.x)
- Qt добавлен в переменную
PATHили вы знаете путь к его установке - Установлен CMake 3.16+ (для Qt6 лучше 3.21+)
Структура проекта
qt_hello_world/
CMakeLists.txt
main.cpp
Содержимое main.cpp:
#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QLabel *label = new QLabel("Hello, Qt with CMake!");
label->setAlignment(Qt::AlignCenter);
label->resize(400, 300);
label->show();
return app.exec();
}
CMakeLists.txt для Qt6 (современный подход)
# Для Qt6 требуется CMake 3.16+, для Qt6.3+ лучше 3.21+
cmake_minimum_required(VERSION 3.21)
project(QtHelloWorld VERSION 1.0.0 LANGUAGES CXX)
# Находим пакет Qt6. COMPONENTS указывает, какие модули нужны
# Core - базовые классы, Widgets - виджеты (QLabel, QWidget и т.д.)
find_package(Qt6 REQUIRED COMPONENTS Core Widgets)
# Включаем автоматическую работу с MOC, UIC, RCC
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTUIC ON)
set(CMAKE_AUTORCC ON)
# Создаем исполняемый файл
add_executable(${PROJECT_NAME}
main.cpp
)
# Подключаем модули Qt к нашему таргету
# PUBLIC означает, что зависимости будут переданы другим таргетам,
# которые будут линковаться с этим
target_link_libraries(${PROJECT_NAME} PUBLIC
Qt6::Core
Qt6::Widgets
)
# Указываем стандарт C++ (Qt6 требует минимум C++17)
set_target_properties(${PROJECT_NAME} PROPERTIES
CXX_STANDARD 17
CXX_STANDARD_REQUIRED ON
)
CMakeLists.txt для Qt5 (если используете Qt5)
cmake_minimum_required(VERSION 3.16)
project(QtHelloWorld VERSION 1.0.0 LANGUAGES CXX)
# Для Qt5 используется Qt5_CONFIG
find_package(Qt5 REQUIRED COMPONENTS Core Widgets)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
add_executable(${PROJECT_NAME}
main.cpp
)
target_link_libraries(${PROJECT_NAME} PUBLIC
Qt5::Core
Qt5::Widgets
)
set_target_properties(${PROJECT_NAME} PROPERTIES
CXX_STANDARD 11 # Qt5 работает с C++11
CXX_STANDARD_REQUIRED ON
)
Сборка проекта
# Создаем папку для сборки mkdir build cd build # Конфигурируем проект. Указываем путь к Qt, если CMake не находит его автоматически # Для Windows пример: # cmake .. -DCMAKE_PREFIX_PATH="C:/Qt/6.5.0/msvc2019_64/lib/cmake" # Для Linux часто путь указывать не нужно, если Qt установлен системно cmake .. # Собираем cmake --build . --config Release # или Debug # Запускаем ./QtHelloWorld # на Linux/Mac # или QtHelloWorld.exe на Windows
