我在使用 Qt 的 QTcpSocket 类来创建一个网络通信应用时,编译器提示说以下错误:

main.cpp:3:22: fatal error: QTcpSocket: No such file or directory

这个错误指向了代码

#include <QTcpSocket>

。那究竟这个 QTcpSocket 类在哪里,我需要怎样链接它呢?

通过万能的 google 找到了答案,我们只需要把下面的指令

QT += network

添加到 .pro 工程文件里,这个 .pro 文件是由

qmake -project

来生成的。如果不显式地把 QTcpSocket 添加到 .pro 文件里,该模块将不会自动加载。

这里有一点需要强调一下:在你编辑了 .pro 文件后使用命令 qmake -project,依然会获得上述错误,因为使用命令 qmake -project 将会根据当前目录下的 C++ 文件重新生成 .pro 文件。所以,在日常命令使用中,我们需要搞清楚每一个命令的具体作用。

上述命令我也在之前的文章里有介绍过,完整的 Qt 工程生成命令如下:

qmake -project
qmake -tp vc

现在,上述编译错误已经解决了,千万要记住 qmake -project 是用来生成 .pro 文件的,而 qmake -tp vc 则是用来生成 Visual Studio 工程文件的。