Je travaille sur un projet QT-CMake avec plusieurs bibliothèques partagées. Malheureusement quand j'essaye de compiler la classe qui a besoin de QtNetwork, je reçois l'erreur que QNetworkReply ne peut pas être trouvée. Mon fichier CMake ressemble à ceCMake ne trouve pas la bibliothèque QtNetwork
project(Geo CXX)
cmake_minimum_required(VERSION 2.8)
find_package(Qt4 4.7.3 REQUIRED QtCore QtNetwork)
message(STATUS "Geo module build")
SET(QT_USE_QTNETWORK true)
INCLUDE(${QT_USE_FILE})
INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR} ${QT_INCLUDE_DIR} ${QT_QTNETWORK_INCLUDE_DIR})
ADD_DEFINITIONS(${QT_DEFINITIONS})
set(geo_lib_src google.cpp Tracker.cpp Coordinates.h)
set(geo_lib_headers google.h)
qt4_wrap_cpp(geo_lib_moc ${geo_lib_headers})
add_library(Geo SHARED ${geo_lib_src} ${geo_lib_moc})
target_link_libraries(Geo ${QT_LIBRARIES} ${QT_QTNETWORK_LIBRARY})
Aussi, lorsque vous essayez d'utiliser cette bibliothèque dans d'autres bibliothèques, Im obtenir un message qui ne peut pas résoudre le nom de la fonction, mais je dois y
add_dependencies(Core Model Geo)
Que peut-on mal?
Ok, je l'ai résolu première erreur. Le fichier Include incluait QNetwork comme inclus, et la bibliothèque que je voulais utiliser Geo n'avait pas ce lien. Mais je ne sais toujours pas pourquoi la liaison entre ça ne fonctionne pas ... – myky
n'avait pas besoin de $ {QT_QTNETWORK_LIBRARAY} 'ni de $ {QT_QTNETWORK_INCLUDE_DIR}' comme mentionné dans le code. Tout a fonctionné après i * juste * utilisé 'SET (QT_USE_QTNETWORK true)'. Merci @ myky pour l'impression – user3085931