Создание проекта QT с помощью CMakeC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Создание проекта QT с помощью CMake

Сообщение Anonymous »

Я пытаюсь настроить проект QT с помощью CMake (а не с помощью QT Creator).
В настоящее время я пытаюсь создать минимальный рабочий пример, который показывает просто пустое окно. Мой текущий код основан (скорее скопирован) на этом руководстве из официальной (?) документации и на этом ответе другого пользователя на аналогичный вопрос.
Затем я запускаю следующие три команды:
cmake .
cmake --build .
.\Debug\helloworld.exe

Но ничего не происходит (при запуске программы первые две команды работают как положено). Если я помещу код из main.cpp в существующий проект QT Creator, он будет работать и показывать пустое окно. Кто-нибудь может сказать мне, чего мне не хватает?
main.cpp
#include
#include
#include

int main(int argc, char *argv[])
{
QApplication app(argc, argv);

//Option 1, like in the mentioned stackoverflow answer
//QWidget window;

//Option 2, to test If maybe the QWidget above was the problem
QMainWindow window;
window.setWindowTitle("Test");

window.show();
return app.exec();
}

CMakeList.txt
cmake_minimum_required(VERSION 3.16)

project(helloworld VERSION 1.0.0 LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# Without this line, cmake does not find the package
set(CMAKE_PREFIX_PATH "C:/Qt/6.3.1/msvc2019_64")

find_package(Qt6 REQUIRED COMPONENTS Widgets)
qt_standard_project_setup()

add_executable(helloworld
main.cpp
)

target_link_libraries(helloworld PRIVATE Qt6::Widgets)

set_target_properties(helloworld PROPERTIES
WIN32_EXECUTABLE ON
MACOSX_BUNDLE ON
)

РЕДАКТИРОВАТЬ:
Как предложил Аамир, я создал дополнительную папку сборки. Вывод трех команд следующий:
И еще: если я заменю код в main.cpp простой программой «Hello World», она будет работать нормально. Поэтому я предположил, что отсутствующие/неисправные части в первой команде cmake не являются проблемой. Или я ошибаюсь в этом вопросе?
PS H:\Coding\QT_Tic_Tac_toe> mkdir build

Directory: H:\Coding\QT_Tic_Tac_toe

Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 19/08/2022 10:11 build

PS H:\Coding\QT_Tic_Tac_toe> cd .\build\
PS H:\Coding\QT_Tic_Tac_toe\build> cmake ..
-- Building for: Visual Studio 17 2022
-- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.19043.
-- The CXX compiler identification is MSVC 19.32.31332.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.32.31326/bin/Hostx64/x64/cl.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - not found
-- Found Threads: TRUE
-- Performing Test HAVE_STDATOMIC
-- Performing Test HAVE_STDATOMIC - Success
-- Found WrapAtomic: TRUE
-- Could NOT find WrapVulkanHeaders (missing: Vulkan_INCLUDE_DIR)
-- Configuring done
-- Generating done
-- Build files have been written to: H:/Coding/QT_Tic_Tac_toe/build
PS H:\Coding\QT_Tic_Tac_toe\build> cmake --build .
Microsoft (R) Build Engine version 17.2.1+52cd2da31 for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.

Checking Build System
Automatic MOC and UIC for target helloworld
Building Custom Rule H:/Coding/QT_Tic_Tac_toe/CMakeLists.txt
mocs_compilation_Debug.cpp
main.cpp
Generating Code...
helloworld.vcxproj -> H:\Coding\QT_Tic_Tac_toe\build\Debug\helloworld.exe
Building Custom Rule H:/Coding/QT_Tic_Tac_toe/CMakeLists.txt
PS H:\Coding\QT_Tic_Tac_toe\build> .\Debug\helloworld.exe
PS H:\Coding\QT_Tic_Tac_toe\build>


Подробнее здесь: https://stackoverflow.com/questions/734 ... with-cmake
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»