Как настроить Qt Creator для работы с CMake на Mac с Qt 4.7 SDK? - PullRequest
4 голосов
/ 12 июля 2011

Я использую Qt Creator 2.2.1 под MacOS X 10.6.8, стандартная установка MacOS X для CMake 2.8.5 и Qt SDK версии 1.1.2, выпущенная 21 июня (библиотеки Qt 4.7.3).

Мой CMakeLists.txt завершается с ошибкой в ​​find_package для Qt4 - вторая из строк ниже:

set (CMAKE_MODULE_PATH /Applications/CMake 2.8-5.app/Contents/share/cmake-2.8/Modules)
find_package (Qt4 REQUIRED HINTS /Users/myname/QtSDK)

Я добавил первую, просто чтобы убедиться, что она знает, где находится FindQt4.cmake, но та же ошибкас этой строкой или без нее.

Ошибка CMake выглядит следующим образом:

    -- Configuring incomplete, errors occurred!
     CMake Error at CMakeLists.txt:30 (find_package):
     Could not find a configuration file for package Qt4.

     Set Qt4_DIR to the directory containing a CMake configuration file for Qt4.
     The file will have one of the following names:

     Qt4Config.cmake
     qt4-config.cmake

Я сделал несколько находок как в установленном расположении QtSDK, так и в каталогах CMake, и нетQt4Config.cmake.Я видел в каталоге модулей CMake - FindQt4.cmake, Qt4ConfigDependentSettings.cmake и UseQt4.cmake

Согласно этой странице :

Пакет find_packageКоманда () будет искать путь к модулю для Find.cmake, который является типичным способом поиска библиотек.Сначала CMake проверяет все каталоги в $ {CMAKE_MODULE_PATH}, затем он ищет в своем собственном каталоге модулей / share / cmake-xy / Modules /.Если такой файл не найден, он ищет Config.cmake или -config.cmake, которые должны быть установлены библиотеками (но в настоящее время не так много библиотек, которые их устанавливают) и которые не выполняют обнаружение, а скореепросто содержат жестко запрограммированные значения для установленной библиотеки.

Так что похоже, что FindQt4.cmake должен найти Qt4, на который я намекаю, в его местонахождение - так почему он даже делает это до Qt4Config.cmake?Кто-нибудь может заставить это работать на Mac с этими стандартными установками?

1 Ответ

3 голосов
/ 14 июля 2011

Команда "find_package (Qt4 ..." очень зависит от поиска исполняемого файла qmake. Есть ли на вашем пути "qmake"? Попробуйте что-то вроде

set(QT_QMAKE_EXECUTABLE "<actual location of qmake on your system>")
find_package(Qt4 REQUIRED)

Редактировать: я хотел набрать QT_QMAKE_EXECUTABLE; и я вначале не послушал ваше заявление о CMAKE_MODULE_PATH.

...