1. 程式人生 > >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。






相關推薦

Flask10 登錄模塊表單框架表單渲染表單驗證bookie請求之前鉤子g對象編寫裝飾器

data 函數實現 https tid 路徑 錯誤 post請求 字符 als from flask import Flask from flask import request from flask import render_template from flask_

g++,makecmake的一些區別

大家都知道,寫程式大體步驟為:1.用編輯器編寫原始碼,如.c檔案。2.用編譯器編譯程式碼生成目標檔案,如.o。3.用連結器連線目的碼生成可執行檔案,如.exe。但如果原始檔太多,一個一個編譯時就會特別麻煩,於是人們想到,為什麼不設計一種類似批處理的程式,來批處理編譯原始檔呢,

Flask框架 (四)—— 請求上下文源碼分析g對象第三方插件(flask_sessionflask_scriptwtforms)信號

from 輸入 tin excel test -s minutes 小寫字母 hal 目錄 請求上下文源碼分析、g對象、第三方插件(flask_session、flask_script、wtforms)、信號

Linux下gcc/g++makecmake區別

文字程式到可執行檔案生成無論在什麼平臺大致分為以下幾個部分:    1.用編輯器編寫原始碼,如.c檔案。    2.用編譯器編譯程式碼生成目標檔案,如.o。    3.用連結器連線目的碼生成可執行檔案,如.exe。    Linux平臺下,.o檔案一般是通過編譯的但還未連結的

gccg++makecmake區別

      首先介紹一下GCC:GNU Compiler Collection(GNU 編譯器集合),在為Linux開發應用程式時,絕大多數情況下使用的都是C語言,因此幾乎每一位Linux程式設計師面臨的首要問題都是如何靈活運用C編譯器。目前 Linux下最常用的C語言編譯器

GCCg++編譯器和gcc編譯器的區別

GCC:(GNU Compiler Collection,GNU編譯器套件),是由 GNU 開發的程式語言編譯器。它是以GPL許可證所發行的自由軟體,也是 GNU計劃的關鍵部分。 gcc:GNU的C語言編譯器。 g++:GNU的C++語言編譯器。 區別一: gcc:編譯檔案字尾為.c的檔案時,編譯成編

編譯工具makegmakecmakenmake和Dmake的區別

現有編譯工具 -----------------       gmake是GNU Make的縮寫。       Linux系統環境下的make就是GNU Make,之所以有gmake,是因為在別的平臺上,make一般被佔用,GNU make只好叫gmake了。      

ccgccg++CC的區別概括[轉載]

gcc是C編譯器;g++是C++編譯器;linux下cc一般是一個符號連線,指向gcc;gcc和g++都是GUN(組織)的編譯器。而CC則一般是makefile裡面的一個名字,即巨集定義,嘿,因為Linux/Unix都是大小寫敏感的系統,這點一定要注意。 cc是Uni

GNUGCCG++的區別

GNU GNU不是一個公司名,而是一個軟體專案名。它開發了許多應用程式。 GCC GCC全稱是 GNU C Compiler, 最早的時候就是一個c編譯器。但是後來因為這個專案裡邊集成了更多其他不同語言的編譯器,GCC就代表 the GNU Compi

gccg++make的安裝

前言 《鳥哥的Linux私房菜—基礎學習篇(第三版)》是一本很不錯的Linux使用說明書,也是所有剛開始接觸Linux的人一開始最應該看的一本書,作者用自己細膩的心思為Linux的後來者開啟了一扇窗。 通過對Linux的熟悉之後,我們可以通過跨平臺的QT來增加自己對Linux學習的興趣。如果對網路程式設計比

更改Ubuntu gccg++默認編譯器版本

ext dir 線程 -shared idc cdir move pda native 方法一: 首先,看一下你的Ubuntu都裝了哪些版本的gcc 用命令:ls /usr/bin/gcc* -l 我的顯示是 lrwxrwxrwx 1 root root 7 2

GCC 中 -L-rpath和-rpath-link的區別

目錄 恢復 固定 成功 ref exist fyi man手冊 錯誤 GCC 中 -L、-rpath和-rpath-link的區別 來源 http://blog.csdn.net/q1302182594/article/details/42102961 關於這3個參數的說明

make cleanmake mrpropermake distclean的區別【轉】

空間 href editor 硬盤空間 .config 問題 inux 配置文件 需要 本文轉載自:http://blog.csdn.net/liyayao/article/details/6818061 內核編譯時, 到底用make clean, make mrprope

linux系統應用編譯構建:make make all make clean make install 區別

make,僅編譯; make install,編譯並安裝(比如安裝到/usr/bin目錄下,然後可以直接使用。因為/usr/bin只有管理員才能向裡面新增檔案,所以通常要加sudo) 這個要看你的Makefile的,約定俗成的而已 一般"潛規則" make就是make all,編譯用的,具

Linux學習_005_Linux下使用命令安裝gccg++gdb

注意:本博文在CentOS7.5版本上進行了測試,不同的版本可能會出現差異。以下均為root使用者下的操作,安裝時請確保你的Linux可以上網。 Linux下使用命令安裝gcc、g++、gdb 使用gcc用來編譯C程式 使用g++用來編譯C++程式 使用gdb來除錯程式

./configurecmakemakemake install 命令

這些都是典型的使用GNU的AUTOCONF和AUTOMAKE產生的程式的安裝步驟 note:1.如果經常在Linux系統下面與C、C++檔案打交道的話,一定經常遇到四/五步走: mkdir build cd build cmake .. make // 如果是安裝依賴庫的

gccg++降級到4.4版本

1.先下載4.4版本的gcc、g++ sudo apt-get install gcc-4.4 sudo apt-get install g+±4.4 2.然後操作如下 sudo update-alternatives --install /usr/bin/gcc gcc /us

make make all make clean make install 區別

make,僅編譯; make install,編譯並安裝(比如安裝到/usr/bin目錄下,然後可以直接使用。因為/usr/bin只有管理員才能向裡面新增檔案,所以通常要加sudo) 這個要看你的Makefile的,約定俗成的而已 一般"潛規則" make就是make

mac 通過homebrew安裝gitmavensbtnodemakeautomakegccprotobufwine

1、首先安裝homebrew,安裝方法請看:https://blog.csdn.net/sunxiaoju/article/details/85217293 2、然後在終端輸入如下命令安裝: brew install git 3、此時就會從網上自動下載安裝,如下圖所示: 4

bitbytekbmbg區別

1Byte=8bit1KB=1024Byte(位元組)=8*1024bit1MB=1024KB1GB=1024MB1TB=1024GB bit是計算機資料的最小單元。要麼是0,要麼是1。 byte 關