【问题标题】:Osx cmake build Qt5 projectosx cmake 构建 Qt5 项目
【发布时间】:2014-05-27 02:53:38
【问题描述】:

我正在尝试使用 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)

这似乎是 QtWidget 中的 find_package(Qt5Gui..) 使用 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"CoresspondingModule"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
            ) 

注意我使用的新路径。

【问题讨论】:

  • 你读过this吗?你至少有 cmake 2.8.3 或 2.8.11 吗?你能展示你的 CMakeLists.txt 吗?
  • 我已经读过这篇文章,但是我使用 find_package(Qt5Widgets) 得到了同样的错误

标签: macos qt build cmake qt5


【解决方案1】:

查看我的 CMakeList.txt 更新和 edit2: SOLUTION

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多