Использование Qt5, установленного через VCPKG в Visual Studio для C ++ - PullRequest
0 голосов
/ 05 апреля 2020

Я знаю, что это глупый вопрос, но я новичок в visual studio / c ++ / cmake. Я ищу краткое введение о том, как использовать Qt5, установленный через vcpk, используя:

vcpkg установить qt5-base: x64- windows

Все это установлено нормально, и я получил следующее :

Пакет qt5-base: x64- windows предоставляет цели CMake:

find_package(Qt5Concurrent CONFIG REQUIRED)
target_link_libraries(main PRIVATE Qt5::Concurrent Qt5::ConcurrentPrivate)

et c ....

Я просто не знать, что делать дальше! До использования libs в VS я только что сделал <#include>, теперь я сталкиваюсь с этим ... Pref. Мне нужно какое-то объяснение на уровне newb ie, пожалуйста.

Если я добавлю строку (вверху файла. cpp, просто в качестве теста):

#include <QtWidgets/QApplication>

Это дает: Ошибка (активная) E1696 не может открыть исходный файл "QtWidgets / QApplication"

Я новичок, я думал, что vcpkg избавляет от необходимости добавлять все библиотеки li * et c к варианты проекта? Что мне нужно сделать?

Ответы [ 2 ]

0 голосов
/ 09 апреля 2020

Если вы запустили vcpkg integrate install и просто используете VS, вы можете просто #include <QtWidgets/QApplication>

Если вы используете CMake: find_package(Qt5 COMPONENTS Widgets Concurrent CONFIG REQUIRED) и использовать target_link_libraries, как описано в других ответах. Но вам, вероятно, придется переключиться на #include <QApplication>, поскольку файл cmake добавляет папку QtWidgets в папки include.

Чтобы find_package найти версии сборки vcpkg, вы должны указать файл цепочки инструментов vcpkg.cmake как CMAKE_TOOLCHAIN_FILE=<vcpkgroot>/scripts/buildsystems/vcpkg.cmake (должен быть установлен в первом вызове CMake или, скорее, в начале CMakeLists.txt перед любым project() вызов) и, возможно, также VCPKG_TARGET_TRIPLET=<sometriplet> (также должен быть определен заранее до загрузки CMAKE_TOOLCHAIN_FILE), если вы установили Qt5, используя один из триплетов состояния c.

0 голосов
/ 06 апреля 2020

1) vcpkg "просто" другой менеджер пакетов библиотек C ++, поскольку windows не имеет хорошего менеджера пакетов, как в любом дистрибутиве GNU / Linux или BSD (или homebrew на macOS). Так что это поможет пользователю установить библиотеки в своей системе и найти их. Вам все еще нужно узнать, как работает CMake canonical find_package() IMHO.

2) IIR C Qt предоставляет пакет конфигурации cmake, и обычно вам нужно использовать

find_package(Qt5Core REQUIRED)
find_package(Qt5Gui REQUIRED)
find_package(Qt5Widgets REQUIRED)

затем

target_link_libraries(main PRIVATE ... Qt5::Core Qt5::Gui Qt5::Widgets)

ie Правило большого пальца: вам нужен QtWidget / * include? затем target_link to Qt5 :: Widget et c ...

3) Обратите внимание, что CMake также предоставляет (то есть встроенный) несколько инструментов для облегчения связанных с Qt dev ...

set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)

-> вы должны попробовать прочитать CMake do c ...

...