Как установить путь qt5 с помощью cmake find_package в Windows?
Я добавляю QT так:
find_package(Qt5 COMPONENTS Core Quick REQUIRED)
...
target_link_libraries(${PROJECT_NAME} Qt5::Core Qt5::Quick ${OpenCV_LIBS})
но cmake находит некоторые артефакты Python вместо ожидаемого C:\QT...
Как я могу это изменить? Пытался найти несколько примеров, но не нашел четкой инструкции, какую подпапку C:\QT\ я должен указать (где угодно).
3 ответа
Мой обходной путь состоял в том, чтобы поместить желаемый QT в верхнюю часть переменной PATH. Он должен быть в PATH, если вы хотите, чтобы CMAKE его нашел.
find_package
порядок поиска следующий:
- Поиск в кеше переменных:
CMAKE_PREFIX_PATH
,CMAKE_FRAMEWORK_PATH
,CMAKE_APPBUNDLE_PATH
- Поиск в переменных окружения:
<package>_DIR
,CMAKE_PREFIX_PATH
,CMAKE_FRAMEWORK_PATH
,CMAKE_APPBUNDLE_PATH
, - Поиск в
HINTS
вариант. - Поиск в
PATH
переменная окружения. - И еще в некоторых "отчаянных" местах. Подробнее об этом здесь.
Имея это в виду, есть несколько способов предоставить правильную версию QT:
- Иметь переменную окружения, указывающую на правильную версию QT (например,
QTDIR
). И используйте его в файлах CMake:- лайк
set(CMAKE_PREFIX_PATH "$ENV{QTDIR}")
- или же
find_package(Qt5 HINTS "$ENV{QTDIR}" COMPONENTS Core Quick REQUIRED)
- лайк
- Иметь переменную окружения с явным именем
Qt5_DIR
указывая на правильную версию QT. Тогда никаких дополнительных изменений в файлах CMake не требуется. - Убедитесь, что необходимая версия Qt является первой, которую можно найти в
PATH
переменная окружения.
Вы можете установить нажмите Add Entry
кнопка в CMake Gui и добавить новую переменную под названием Qt5_DIR
выберите его тип как PATH
и его значение для чего-то вроде C:\Qt\5.11.0\msvc2017_64\lib\cmake\Qt5
где 5.11.0
это версия Qt. Эта папка должна содержать Qt5Config.cmake
что CMake нужно правильно настроить.