CMake undefined reference to `QTcpServer::QTcpServer(QObject*)'的解决

1. 这是因为工程link不到network的库,因此除了要包含头文件
    #include 
之外,还需要在.pro文件中加入:
    QT += network

2. 对于CMake,需添加Network相关package

#"/home/Qt5.1.0/5.1.0/gcc"  QT5目录

set(CMAKE_PREFIX_PATH "/home/Qt5.1.0/5.1.0/gcc")

find_package(Qt5Network REQUIRED)

set(QT_INCLUDE_DIRS ${Qt5Gui_INCLUDE_DIRS} ${Qt5Widgets_INCLUDE_DIRS} ${Qt5Network_INCLUDE_DIRS})
set(QT_LIBRARIES Qt5::Gui Qt5::Widgets Qt5::Network)
add_definitions(${Qt5Gui_DEFINITIONS} ${Qt5Widgets_DEFINITIONS} ${Qt5Network_DEFINITIONS})

在QT5目录下搜寻cmake文件:

find . -name "*.cmake"

Qt5.1.0/5.1.0/gcc/lib/cmake/Qt5Network/Qt5NetworkConfig.cmake

Qt5NetworkConfig.cmake定义了cmake相关规则,Qt5Network_INCLUDE_DIRS等定义均可在这个文件中找到

原文地址:https://www.cnblogs.com/karappo/p/5994224.html