2013-09-10 7 views
11

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

Вот мой 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-гуй:

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. 
+1

Вы пробовали шаги в нижней части вас выход «Добавить префикс установки «Qt5Widgets» до CMAKE_PREFIX_PATH или установить «Qt5Widgets_DIR» в каталог, содержащий один из вышеуказанных файлов. Если «Qt5Widgets» предоставляет отдельный пакет разработки или SDK, убедитесь, что он имеет ». – drescherjm

ответ

14

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

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

+0

«вам нужно вывести эту строку qt5_use_modules (виджеты Blemmer) и удалить из этого« Qt5 :: Widgets »материал» << Это неверно. См. Руководство cmake в документации Qt. – steveire

+0

Steveire, я сейчас в отпуске. Пожалуйста, не стесняйтесь улучшать ответ, предлагая редактирование, иначе я буду смотреть, когда вернусь. Спасибо за ваш отзыв! – lpapp

+0

lpapp, я пробовал, но мое редактирование было отклонено. Тогда Питер Краусс сделал редактирование, которое не зафиксировало критической ошибки. Итак, lpapp, пожалуйста, исправьте это сами, когда сможете. Я повторно опубликовал свое редактирование. – steveire

15

Я successly построить свой GUI на 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 

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

+0

Для других, построенных на OSX, мне пришлось добавить 'export WITH_QT = 1', чтобы включить Qt. – sdgfsdh

4

Fixed его следующим в 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 
+3

Для справки: Это вводит в заблуждение. 'CMAKE_PREFIX_PATH' может быть задан как переменная среды без дополнительных изменений в CMakeLists.txt. См. Принятый ответ. – kfunk

+0

Спасибо @kfunk, что вы правы, что также можно использовать переменную окружения, принятый ответ на самом деле не дает понять, что 'CMAKE_PREFIX_PATH' может быть переменной окружения в это время, не обращаясь к ссылке с документацией и не ищет ее , – pzrq

Смежные вопросы