QT5中的pro文件中爲何要加入”QT += widgets”


在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解決了。

*************************************************************

在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
圖文並茂地講述了編譯器 鏈接器和加載器的工作原理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章