Eu instalei o QT4.8.7 mas o CMAKE não pôde igualar o caminho

2

Recebi a mensagem de erro

CMake Error at /usr/local/share/cmake-3.4/Modules/FindPackageHandleStandardArgs.cmake:148 (message):
  Could NOT find Qt4 (missing: QT_QTOPENGL_INCLUDE_DIR QT_QTOPENGL_LIBRARY
  QT_QTMULTIMEDIA_INCLUDE_DIR QT_QTMULTIMEDIA_LIBRARY QT_PHONON_INCLUDE_DIR
  QT_PHONON_LIBRARY) (found version "4.8.6")
Call Stack (most recent call first):
  /usr/local/share/cmake-3.4/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA_FAILURE_MESSAGE)
  /usr/local/share/cmake-3.4/Modules/FindQt4.cmake:1333 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  CMakeLists.txt:5 (find_package)

o caminho QT4.8.7 é /usr/local/Trolltech/Qt-4.8.7
como combiná-los?

    
por Hamdy Fouad 04.12.2015 / 21:56

1 resposta

2

Especifique a variável CMAKE_PREFIX_PATH ao executar o cmake. Configure-o para o caminho no qual os arquivos *.cmake da instalação desejável do Qt estão localizados:

cmake -DCMAKE_PREFIX_PATH=/usr/local/Trolltech/Qt-4.8.7/<something-something>/lib/cmake/ ../myproject

(mas eu não tenho certeza se o Qt4 tem esse diretório cmake)

Além disso, a versão que vem com o sistema operacional pode ser usada. Não é possível encontrar alguns módulos: provavelmente libqt4-opengl não está instalado. Obtê-lo com apt-get .

Obtenha dependências:

sudo apt-get install qtmobility-dev libopencv-dev libtesseract-dev flite1-dev libphonon-dev

Edite o arquivo CMakeLists.txt :

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8b643ab..ffafc6b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2,7 +2,9 @@ cmake_minimum_required (VERSION 2.6)
 project (TextReading) 

 find_package(OpenGL REQUIRED)
-find_package(Qt4 REQUIRED QtGui QtOpenGL QtXml QtMultimedia Phonon)
+find_package(Qt4 REQUIRED QtGui QtOpenGL QtXml Phonon)
+find_package(QtMobility REQUIRED MultimediaKit)
+include_directories(${QTMOBILITY_INCLUDE_DIRS})
 find_package(OpenCV REQUIRED core imgproc video highgui)
 # find_package(OpenMP REQUIRED)

@@ -151,5 +153,7 @@ target_link_libraries(TextReading
     ${MathGL_LIB}
     ${Flite_LIBS}
     ${QEXTSERIALPORT_LIBS}
+    ${QTMOBILITY_LIBRARIES}
+    udev
     )

Coloque em /usr/share/cmake-3.0/Modules/FindQtMobility.cmake o seguinte:

# - Try to find the QtMobility libraries
#
# This module will search for the QtMobility libraries.
#
# It supports both a minimum version and searching for individual
# components. For the minimum version, use
# find_package(QtMobility 1.2.0). For specific components, use
# find_package(QtMobility COMPONENTS ...). See below for a list of known
# components.
#
# Once done this will define
#  QTMOBILITY_FOUND - QtMobility and all specified components were found.
#  QTMOBILITY_INCLUDE_DIR - Include directory for global QtMobility files.
#  QTMOBILITY_INCLUDE_DIRS - All found QtMobility components' include dirs.
#  QTMOBILITY_LIBRARIES - All found QtMobility components' libraries.
#  QTMOBILITY_VERSION - The version of QtMobility that was found.
#
# For each found component the following will be defined:
#  QTMOBILITY_{COMPONENT}_INCLUDE_DIR - The include directory for the component.
#  QTMOBILITY_{COMPONENT}_LIBRARY - The location of the library for the component.
#
# Note that searching for components will be limited to the specified components
# if the components option is used.
#
# Copyright (c) 2011 Arjen Hiemstra <[email protected]>
# Redistribution and use is allowed according to the terms of the BSD license.

set(QTMOBILITY_COMPONENTS
    Bearer
    Connectivity
    Contacts
    Feedback
    Gallery
    Location
    Messaging
    MultimediaKit
    Organizer
    PublishSubscribe
    Sensors
    ServiceFramework
    SystemInfo
    Versit
)

if (QtMobility_FIND_COMPONENTS)
  foreach (component ${QtMobility_FIND_COMPONENTS})
    string(TOUPPER ${component} _COMPONENT)
    set(QTMOBILITY_USE_${_COMPONENT} 1)
  endforeach (component)
endif (QtMobility_FIND_COMPONENTS)

find_path(QTMOBILITY_INCLUDE_DIR qmobilityglobal.h PATH_SUFFIXES QtMobility)

#Find the mobility version
if(QTMOBILITY_INCLUDE_DIR)
    file(READ "${QTMOBILITY_INCLUDE_DIR}/qmobilityglobal.h" _qtmobility_global_header LIMIT 2000)
    string(REGEX MATCH "#define QTM_VERSION_STR \"([0-9.]*)\"" _qtmobility_version_match  "${_qtmobility_global_header}")
    set(QTMOBILITY_VERSION "${CMAKE_MATCH_1}")
    message(STATUS "QtMobility Version ${QTMOBILITY_VERSION} detected")
endif(QTMOBILITY_INCLUDE_DIR)

set(QTMOBILITY_VARIABLES "QTMOBILITY_INCLUDE_DIR")
set(QTMOBILITY_INCLUDE_DIRS ${QTMOBILITY_INCLUDE_DIR})

#A list of files to find for specific components
set(QTMOBILITY_FIND_FILES
    QNetworkConfiguration #Bearer
    QBluetoothSocket #Connectivity
    QContact #Contacts
    QFeedbackInterface #Feedback
    QAbstractGallery #Gallery
    QLandmark #Location
    QMessage #Messaging
    QMediaPlayer #MultimediaKit
    QOrganizerItem #Organizer
    QValueSpace #PublishSubscribe
    QSensor #Sensors
    QService #ServiceFramework
    QSystemInfo #SystemInfo
    QVersitDocument #Versit
)

list(LENGTH QTMOBILITY_COMPONENTS _component_count)
math(EXPR _component_count "${_component_count} - 1")
foreach (index RANGE ${_component_count})
    list(GET QTMOBILITY_COMPONENTS ${index} component)
    list(GET QTMOBILITY_FIND_FILES ${index} file)
    string(TOUPPER ${component} _COMPONENT)
    if (NOT QtMobility_FIND_COMPONENTS OR QTMOBILITY_USE_${_COMPONENT})
        message(STATUS "Looking for QtMobility Component \"${component}\"")
        find_path(QTMOBILITY_${_COMPONENT}_INCLUDE_DIR ${file} PATH_SUFFIXES Qt${component})
        find_library(QTMOBILITY_${_COMPONENT}_LIBRARY NAMES Qt${component})
        list(APPEND QTMOBILITY_VARIABLES "QTMOBILITY_${_COMPONENT}_INCLUDE_DIR" "QTMOBILITY_${_COMPONENT}_LIBRARY")
        list(APPEND QTMOBILITY_INCLUDE_DIRS ${QTMOBILITY_${_COMPONENT}_INCLUDE_DIR})
        list(APPEND QTMOBILITY_LIBRARIES ${QTMOBILITY_${_COMPONENT}_LIBRARY})
    endif (NOT QtMobility_FIND_COMPONENTS OR QTMOBILITY_USE_${_COMPONENT})
endforeach (index)

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(QtMobility REQUIRED_VARS ${QTMOBILITY_VARIABLES} VERSION_VAR QTMOBILITY_VERSION)

mark_as_advanced(${QTMOBILITY_VARIABLES})
    
por Velkan 04.12.2015 / 22:01