cmake не находит qt 5.1.1

Я только что установил Qt 5.1.1 для 32-разрядной версии Windows (MinGW 4.8, OpenGL) и попытался добавить его в свой cmake. Но CMake просто не хочет его находить, и я не знаю, почему. Что мне не хватает? Мне нужно установить переменную среды или что-то в этом роде?

Вот мой cmake:

cmake_minimum_required( VERSION 2.8.11 )
PROJECT(Blemmer)
# Find includes in corresponding build directories
set(CMAKE_INCLUDE_CURRENT_DIR ON)
# Instruct CMake to run moc automatically when needed.
set(CMAKE_AUTOMOC ON)
# Detect and add SFML
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/Modules" ${CMAKE_MODULE_PATH})

set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin )
set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib )
find_package(SFML REQUIRED system window graphics network audio)
# The QUIET option disables messages if the package cannot be found. 
FIND_PACKAGE(Qt5Widgets) 
add_subdirectory(Entity)
add_subdirectory(Engine)
add_subdirectory(Game)
add_executable(Blemmer main.cpp)

include_directories(${SFML_INCLUDE_DIR} ${PROJECT_SOURCE_DIR})
target_link_libraries(Blemmer ${SFML_LIBRARIES} Game Engine Qt5::Widgets)

и это вывод cmake-gui :

CMake Warning at CMakeLists.txt:14 (FIND_PACKAGE):
  By not providing "FindQt5Widgets.cmake" in CMAKE_MODULE_PATH this project
  has asked CMake to find a package configuration file provided by
  "Qt5Widgets", but CMake did not find one.

  Could not find a package configuration file provided by "Qt5Widgets" with
  any of the following names:

    Qt5WidgetsConfig.cmake
    qt5widgets-config.cmake

  Add the installation prefix of "Qt5Widgets" to CMAKE_PREFIX_PATH or set
  "Qt5Widgets_DIR" to a directory containing one of the above files.  If
  "Qt5Widgets" provides a separate development package or SDK, be sure it has
  been installed.

person Amazonasmann    schedule 10.09.2013    source источник
comment
Пробовали ли вы выполнить шаги в нижней части вывода? Добавьте префикс установки Qt5Widgets в CMAKE_PREFIX_PATH или установите Qt5Widgets_DIR в каталог, содержащий один из вышеуказанных файлов. Если Qt5Widgets предоставляет отдельный пакет разработки или SDK, убедитесь, что он установлен.   -  person drescherjm    schedule 10.09.2013


Ответы (3)


Вам нужно установить CMAKE_PREFIX_PATH для установки Qt.

См. http://doc.qt.io/qt-5/cmake-manual.html

person lpapp    schedule 12.09.2013
comment
вам нужно установить эту строку qt5_use_modules (Blemmer Widgets) и удалить оттуда этот материал «Qt5:: Widgets» ‹‹ Это неверно. См. руководство cmake в документации Qt. - person steveire; 13.11.2014
comment
Стиви, я сейчас в отпуске. Пожалуйста, не стесняйтесь улучшить ответ, предложив редактирование, иначе я посмотрю, когда вернусь. Спасибо за ваш отзыв! - person lpapp; 14.11.2014
comment
lpapp, я пытался, но мое редактирование было отклонено. Затем Питер Краусс, по-видимому, внес правку, которая не устранила критическую ошибку. Итак, lpapp, пожалуйста, исправьте это сами, когда сможете. Я повторно отправил свое редактирование. - person steveire; 18.11.2014
comment
Мое редактирование снова было отклонено, поскольку оно исправляет критическую ошибку. Примечательно, что желательно принять неверный ответ с критической ошибкой. Я думал, что SO предназначен для сопоставления хороших ответов, а не плохих. Этот ответ помечен как правильный, но это определенно не так. - person steveire; 20.11.2014
comment
@steveire, к сожалению, рецензенты отвергли это. К сожалению, SO несовершенен, но я ценю вашу готовность внести конструктивный вклад. Я обновил пост, спасибо. Дайте мне знать, если есть что-то еще, что можно улучшить. - person lpapp; 20.11.2014

Я успешно создаю свой графический интерфейс на MacOSX 10.10, экспортируя переменные среды Linux.

$ brew install qt5
$ ls /usr/local/opt/qt5/lib/cmake/Qt5Widgets/Qt5WidgetsConfig.cmake
$ /usr/local/opt/qt5/lib/cmake/Qt5Widgets/Qt5WidgetsConfig.cmake
$ export CMAKE_PREFIX_PATH=/usr/local/opt/qt5/
$ cd ./build
$ cmake ../CMakeLists.txt
$ make -j8

Со ссылкой на http://www.cmake.org/cmake/help/v3.0/variable/CMAKE_PREFIX_PATH.html, функция cmake FIND_LIBRARY() будет appends /lib to each of the directories. Так сделано.

person micfan    schedule 12.11.2014
comment
Для других сборок на OSX мне пришлось добавить export WITH_QT=1, чтобы включить Qt. - person sdgfsdh; 25.07.2016

Исправлено это следующим образом в файле CMakeLists.txt:

set(CMAKE_PREFIX_PATH $ENV{HOME}/Qt5.5.0/5.5/gcc_64)

Для меня контекст закончился примерно так:

# Ubuntu 14.04 LTS, CMake 2.8.12.2
wget http://download.qt.io/official_releases/qt/5.5/5.5.0/qt-opensource-linux-x64-5.5.0.run
chmod u+x qt-opensource-linux-x64-5.5.0.run
./qt-opensource-linux-x64-5.5.0.run
# Follow GUI prompts, installed to default location
person pzrq    schedule 04.07.2015
comment
Для протокола: это заблуждение. CMAKE_PREFIX_PATH можно установить как переменную среды без дальнейших изменений в CMakeLists.txt. Смотрите принятый ответ. - person kfunk; 22.05.2017
comment
Спасибо @kfunk, вы правы в том, что также можно использовать переменную среды, принятый ответ на самом деле не дает понять, что CMAKE_PREFIX_PATH может быть переменной среды в настоящее время, без просмотра ссылки на документацию и ее поиска. - person pzrq; 01.06.2017