在pro文件里写"QT+=widgets"表示引入QtWidget这个module,qmake在生成makefile的时候,会设置好include path 和 lib path,在link时候设置好libs。
QT += widgets包括两部分:
1:Lib,这个是lib的路径和lib文件的文件名。
2:include , *.h的路径在pro文件里设置,.h的文件名用代码里的#include设定
QT += widgets 貌似可以分开写成(大致是这样):
INCLUDE+= 一串路径 (因为文件名都在代码里以include形式出现,所以这里没必要出现文件名)
LIB+=一串路径 + -l文件名 + -l文件名。。。。
而若仅在源代码里 include <QApplication>仅是引入声明,但是没有lib,所以链接时会出错。
这是由于C++头文件和lib分离的这种设计模式造成的,现代语言基本都采用package管理,用import解决了。