2014-04-13 71 views
2

我試圖使用cmake建立一個QT5項目,但我一直有,現在有一陣子了同樣的錯誤:OSX cmake的建立QT5項目

CMake Error at /Users/guillaume/Qt/5.2.1/android_x86/lib/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake:16 (message): 
Failed to find "GLESv2" in "" with CMAKE_CXX_LIBRARY_ARCHITECTURE "". 
Call Stack (most recent call first): 
/Users/guillaume/Qt/5.2.1/android_x86/lib/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake:51 (_qt5gui_find_extra_libs) 
/Users/guillaume/Qt/5.2.1/android_x86/lib/cmake/Qt5Gui/Qt5GuiConfig.cmake:143 (include) 
/Users/guillaume/Qt/5.2.1/clang_64/lib/cmake/Qt5Widgets/Qt5WidgetsConfig.cmake:88 (find_package) 
/Users/guillaume/Qt/5.2.1/clang_64/lib/cmake/Qt5/Qt5Config.cmake:26 (find_package) 
CMakeLists.txt:17 (find_package) 

這似乎是find_package(Qt5Gui ..)在QtWidget其使用androidx86路徑,而不是clang_64路徑,但我不知道爲什麼使用NO_DEFAULT_PATH選項,即使它不會與clang_64路徑去..任何幫助或工作cmake的文件,將不勝感激。
[編輯已更新]
這是我的CMakeList.txt。我的CMake的版本是2.8.12.2:

#YCStats CmakeList.txt 
cmake_minimum_required(VERSION 2.8.8) 
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules/") 
set(GCC_COVERAGE_LINK) 
project(YCStats) 
set(CMAKE_INCLUDE_CURRENT_DIR ON) 
set(CMAKE_AUTOMOC ON) 
set(QT5_PATH $ENV{HOME}/Qt/5.2.1/clang_64/ CACHE PATH "Path to Qt5") 
set(QT5_MODULE_PATH ${QT5_PATH}/lib/cmake) 
set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} ${QT5_MODULE_PATH}) 
find_package(Qt5Widgets) 
find_package(OpenCV REQUIRED) 
find_package(FFMPEG REQUIRED) 
find_package(TESS REQUIRED) 
include_directories(
    ${FFMPEG_INCLUDE_DIR} 
    ${TESS_INCLUDE_DIR} 
) 
file(
    GLOB_RECURSE 
    source_files 
    src/*.cpp 
) 
file(
    GLOB_RECURSE 
    header_files 
    src/*.h 
) 
add_executable(
    YCStats.x 
    ${source_files} 
    ${header_files} 
) 
target_link_libraries(
    YCStats.x 
    ${OpenCV_LIBS} 
    ${FFMPEG_LIBRARIES} 
    ${TESS_LIBRARIES} 
) 
qt5_use_modules(YCStats.x Widgets) 

編輯2:解決方案

最後,我設法建立並使其通過將線組工作(QT5 $ {_ module_dep} _DIR「「)每個錯誤使得find_package()之前(在Qt5WidgetsConfig.cmake,Qt5CoreConfig.cmake ...)。這似乎讓NO_DEFAULT_PATH正常工作。對於有同樣問題的人,如果你的cmake工作正常,但在使用make命令時你得到了錯誤的路徑警告,你應該將上述set()命令放在相應的文件中:Qt5「CoreSpondingModule」Config.cmake
ps:我也曾改變有關find_package:

find_package(Qt5${_module_dep} 
       5.2.1 ${_Qt5Widgets_FIND_VERSION_EXACT} 
       ${_Qt5Widgets_DEPENDENCIES_FIND_QUIET} 
       ${_Qt5Widgets_FIND_DEPENDENCIES_REQUIRED} 
       PATHS "${CMAKE_CURRENT_LIST_DIR}/../Qt5${_module_dep}" 
       NO_DEFAULT_PATH 
      ) 

注意我使用的新路徑。

+0

你讀過[這](http://qt-project.org/doc/qt-5/cmake-manual.html)?你有至少cmake 2.8.3或2.8.11嗎?你能不能展示你的CMakeLists.txt? – lpapp

+0

我已經看過,但我用find_package(Qt5Widgets)得到同樣的錯誤 – grll

回答

-1

見我CMakeList.txt更新和EDIT2:SOLUTION