2011-11-07 3 views
2

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?

+0

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

+0

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

Répondre

0

Votre appel find_package est différent de ce que je vois dans certains projets ici:

FIND_PACKAGE(Qt4 4.6.0 COMPONENTS QtMain QtCore QtGui QtSql QtXml QtNetwork REQUIRED) 

Je vais essayer avec

FIND_PACKAGE(Qt4 4.7.3 COMPONENTS QtCore QtNetwork REQUIRED) 
+1

Merci pour votre réponse. Comme je l'ai déjà dit, j'ai résolu le problème avec QtNetwork non-trouvable. Je regardais aussi ce find_package, mais cela ne fait aucune différence dans ce cas. J'ai toujours un problème avec la liaison. – myky

+0

J'ai eu la même erreur, mais il me manquait QT_QTNETWORK_LIBRARY, avec la ligne QtCore QtCore de la réponse. Fonctionne pour moi maintenant. – Smar

+0

@myky pourriez-vous trouver une solution? Et si oui, pourriez-vous l'expliquer en réponse s'il vous plaît? – user3085931

Questions connexes