Как установить путь qt5 с помощью cmake find_package в Windows? - PullRequest
0 голосов
/ 08 июня 2018

Я добавляю QT следующим образом:

find_package(Qt5 COMPONENTS Core Quick REQUIRED)
...
target_link_libraries(${PROJECT_NAME} Qt5::Core Qt5::Quick ${OpenCV_LIBS})

, но cmake находит некоторые артефакты Python вместо ожидаемых C: \ QT ...

enter image description here

Как я могу это изменить?Пытался найти примеры, но не нашел четкой инструкции, какую подпапку в C: \ QT \ я должен указать (где угодно).

Ответы [ 3 ]

0 голосов
/ 08 июня 2018

Мой обходной путь состоял в том, чтобы поместить желаемый QT в верхнюю часть переменной PATH.Он должен быть в PATH, если вы хотите, чтобы CMAKE его нашел.

0 голосов
/ 12 июня 2018

find_package порядок поиска следующий:

  1. Поиск в переменных кэша : CMAKE_PREFIX_PATH, CMAKE_FRAMEWORK_PATH, CMAKE_APPBUNDLE_PATH
  2. Поиск в переменных среды : <package>_DIR, CMAKE_PREFIX_PATH, CMAKE_FRAMEWORK_PATH, CMAKE_APPBUNDLE_PATH.
  3. Поиск в параметре HINTS.
  4. Поиск в переменной окружения PATH.
  5. И в некоторых более "отчаянных" местах.Подробнее об этом здесь .

Имея это в виду, есть несколько способов обеспечить правильную версию QT:

  1. Иметь переменную среды, указывающуюк правильной версии QT (например, QTDIR).И используйте его в файлах CMake:
    • как set(CMAKE_PREFIX_PATH "$ENV{QTDIR}")
    • или find_package(Qt5 HINTS "$ENV{QTDIR}" COMPONENTS Core Quick REQUIRED)
  2. Иметь переменную окружения, явно названную Qt5_DIR указываяк правильной версии QT.Тогда никаких дополнительных изменений в файлах CMake не требуется.
  3. Убедитесь, что первая требуемая версия Qt найдена в переменной среды PATH, например, для windows C:\Qt\Qt5.10.1\5.10.1\msvc2017_64
0 голосов
/ 08 июня 2018

Вы можете установить щелчок на кнопке Add Entry в CMake Gui и добавить новую переменную с именем Qt5_DIR, выбрать ее тип как PATH, а ее значение - что-то вроде C:\Qt\5.11.0\msvc2017_64\lib\cmake\Qt5, где 5.11.0 - версия Qt.Эта папка должна содержать Qt5Config.cmake, что необходимо CMake для правильной настройки.

...