qt項目工程各個文件區別

makefile文件作用

        一個工程(project)中的源文件不計其數,其按類型、功能、模塊分別放在若干個目錄中,makefile定義了一百系列的規則來指定,哪些文件需要先編譯,哪些文件需要後編譯,哪些文件需要重新編譯,甚至於進行更復雜的功能操作,因爲 makefile就像一個Shell腳本一樣,其度中也可以執行操作系統的命令。
        Makefile 文件描述了整個工知程的編譯、連接等規則。其中包括:工程中的哪些源文件需要編譯以及如何編譯、需要創建那些庫文件以及如何創建這些庫文件、如何最後產生我們想要的可執行文件。儘管看起來可能是很複雜的事情,但是爲工程編寫Makefile 的好處是能夠道使用一行命令來完成“自動化編譯”,一旦提供一個(通專常對於一個工程來說會是多個)正確的
Makefile。編譯整個工程你所要做的唯一的一件事就是在shell 提示符下輸入make命令。整個工程完全自動編譯,極大提高了效率。
        如果你使用的是帶有圖形用戶界面的集成化開發環境如VisualStudio,一般用不着手動編寫makefile文件,當你需要時,VS可以爲你自屬動生成。

.o文件和.a文件區別

        o 就是object, 也就相當於windows下編譯的obj文件, 俗稱目標文件。 o 就相當於windows裏的obj文件 ,一個.c或.cpp文件對應一個.o文件 (二進制文件)
        .a 就是archive, 也就相當於windows的VC下編譯的lib文件, 俗稱靜態庫文件。.a 是好多個.o合在一起,用於靜態連接 ,即STATIC mode,多個.a可以鏈接生成一個exe的可執行文件 。

        .o文件是鏈接文件,.a是靜態庫文件,靠.o文件生成,作爲一個庫爲外部程序提供函數,接口。 
        .so 是shared object,用於動態連接的,和windows的dll差不多,使用時才載入。

qmake、構建、重新構建區別

        qmake:根據實際環境創建項目文件.pro,運行qmake生成適當的Makefile
        構建:構建是增量編譯,只編譯有變化部分
        重新構建:是把所有部分都重新編譯
        運行: 有改動則根據已有的Makefile進行編譯,執行構建和重新構建時如果沒有Makefile,會根據.pro文件等生成Makefile後再編譯

        所以運行順序應該是:qmake-構建-運行
 

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