CMake无法找到QtNetwork库。

3

我正在处理一个基于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)

有什么问题吗?

好的,我解决了第一个错误。我的包含文件中包含了QNetwork,而我想使用的库Geo没有这样的链接。但我仍然不知道为什么这样的链接不起作用... - myky
在代码中并不需要${QT_QTNETWORK_LIBRARAY}${QT_QTNETWORK_INCLUDE_DIR}。只需使用SET(QT_USE_QTNETWORK true),一切都能正常工作。感谢@myky的印象。 - user3085931
1个回答

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 )

1
感谢您的回复。正如我之前所说,我解决了无法找到QtNetwork的问题。我也看了一下find_package,但在这种情况下并没有任何区别。我仍然有链接问题。 - myky
我也遇到了同样的错误,但是我缺少了QT_QTNETWORK_LIBRARY,还有答案中的QtCore QtNetwork行。现在对我来说可以工作了。 - Smar
@myky,你能想出一个解决方案吗?如果可以的话,请简要说明一下作为答案。 - user3085931

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接