當前位置:
首頁 > 知識 > gcc g加加 make cmake區別

gcc g加加 make cmake區別

首先介紹一下GCC:GNU Compiler Collection(GNU 編譯器集合),在為Linux開發應用程序時,絕大多數情況下使用的都是C語言,因此幾乎每一位Linux程序員面臨的首要問題都是如何靈活運用C編譯器。目前 Linux下最常用的C語言編譯器是GCC(GNU Compiler Collection),它是GNU項目中符合ANSI C標準的編譯系統,能夠編譯用C、C++和Object C等語言編寫的程序。GCC不僅功能非常強大,結構也異常靈活。最值得稱道的一點就是它可以通過不同的前端模塊來支持各種語言,如Java、 Fortran、Pascal、Modula-3和Ada等。

gcc與g++區別:

gcc是GCC中的GUNC Compiler(C 編譯器)

g++是GCC中的GUN C++ Compiler(C++編譯器)

更準確的說法是:gcc調用了Ccompiler,而g++調用了C++ compiler

gcc和g++的主要區別

1.對於 *.c和*.cpp文件,gcc分別當做c和cpp文件編譯(c和cpp的語法強度是不一樣的); g++則統一當做cpp文件編譯

2. 使用g++編譯文件時,g++會自動鏈接標準庫STL,而gcc不會自動鏈接STL,在用gcc編譯c++文件時,為了能夠使用STL,需要加參數 –lstdc++ ,但這並不代表 gcc –lstdc++ 和 g++等價

3.gcc在編譯C文件時,可使用的預定義宏是比較少的

4.gcc在編譯cpp文件時/g++在編譯c文件和cpp文件時(這時候gcc和g++調用的都是cpp文件的編譯器),會加入一些額外的宏,這些宏如下:

#define__GXX_WEAK__ 1

#define __cplusplus 1

#define __DEPRECATED 1

#define __GNUG__ 4

#define __EXCEPTIONS 1

#define __private_extern__ extern

gcc/g++與make區別:

當你的程序只有一個源文件時,直接就可以用gcc命令編譯它。但是當你的程序包含很多個源文件時,用gcc命令逐個去編譯時,你就很容易混亂而且工作量大.

所以出現了make工具!make工具可以看成是一個智能的批處理工具,它本身並沒有編譯和鏈接的功能,而是用類似於批處理的方式—通過調用makefile文件中用戶指定的命令來進行編譯和鏈接的。

makefile是什麼?簡單的說就像一首歌的樂譜,make工具就像指揮家,指揮家根據樂譜指揮整個樂團怎麼樣演奏,make工具就根據makefile中的命令進行編譯和鏈接的。makefile命令中就包含了調用gcc(也可以是別的編譯器)去編譯某個源文件的命令。

make與cmake區別:

makefile在一些簡單的工程完全可以人工手下,但是當工程非常大的時候,手寫makefile也是非常麻煩的,如果換了個平台makefile又要重新修改。

這時候就出現了Cmake這個工具,cmake就可以更加簡單的生成makefile文件給上面那個make用。當然cmake還有其他功能,就是可以跨平台生成對應平台能用的makefile,你不用再自己去修改了。

可是cmake根據什麼生成makefile呢?它又要根據一個叫CMakeLists.txt文件(學名:組態檔)去生成makefile。

gcc g加加 make cmake區別

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

編譯過程的五個階段
深入解析數據壓縮演算法

TAG:程序員小新人學習 |