سؤال

أنا أحاول بناء Qt5 المشروع باستخدام cmake ولكن انا اعاني من نفس الخطأ لبعض الوقت الآن:

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 المسار ولكن لا اعلم لماذا لن تذهب مع clang_64 الطريق حتى عند استخدام NO_DEFAULT_PATH الخيار..أي مساعدة أو العامل 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 يعمل ولكن كنت تحصل على تحذير مع الطريق الخطأ عند استخدام تجعل الأمر يجب وضع مجموعة() الأوامر المذكورة أعلاه في ملف المناظرة: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
            ) 

الانتباه إلى مسار جديد اعتدت.

هل كانت مفيدة؟

المحلول

انظر بلدي CMakeList.txt تحديث edit2:الحل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top