关于在工程中添加新文件时的LNK2019错误的一个解决办法

时间:2023-08-04 12:02:44

我这几天一直在研究Qt的串口程序,在读懂了官方给出的实例程序后我决定把其多线程的串口监视程序加入到我自己的工程中,便直接把问价复制到自己的工程下面,在Qt中加入到自己的工程中,但是总是出现LNK2019问题,问题提示是新添加的文件链接错误。我在网上找到一种解释:

在pro里 写 qt+=widgets 表示引入 QtWidget这个module,qmake会在帮你生成makefile的时候,设置好include path 和 lib path,在link时候设置好libs。
而仅在源代码里 include <QApplication>仅是引入声明,但是没有lib,所以链接时会出错。
当然,我们可以批评C++这种源自上世纪70年代的头文件和lib分离的设计是过时的不合理的,现代语言基本都采用package管理,用import解决了。
但是我们既然还在用C++,就要接受这种设计,把它搞明白。
另外你说在网上找不到资料,我大胆猜测你是用baidu搜索的,因为用google搜索,这类资料是很多的,比如
The compiler, assembler, linker, loader and process address space tutorial
图文并茂地讲述了编译器 链接器和加载器的工作原理

作者:姚冬
链接:http://www.zhihu.com/question/27253528/answer/35857943
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

看到这个后我就在我自己的工程文件(.pro)中加入了 这样一句话:

QT += serialport

这样便成功的编译成功了!