我正致力于基于QT-CMake的项目,该项目包含多个共享库。不幸的是,当我尝试编译需要QtNetwork的类时,我得到的错误是无法找到QNetworkReply。我的CMake文件看起来像这样
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})
另外,当试图在其他库中使用该库时,我得到的消息无法解析函数名,但我有
add_dependencies(Core Model Geo)
有什么不对?
答案 0 :(得分:0)
您的find_package调用看起来与我在某个项目中看到的不同:
FIND_PACKAGE( Qt4 4.6.0 COMPONENTS QtMain QtCore QtGui QtSql QtXml QtNetwork REQUIRED )
所以我试试
FIND_PACKAGE( Qt4 4.7.3 COMPONENTS QtCore QtNetwork REQUIRED )