C C 專案編譯工具簡介

2022-02-26 16:51:58 字數 1363 閱讀 6239

本文基於乙個需要對 c 語言家族專案進行編譯、生成解決方案的開發者的視角,對編譯過程中所需要的各個工具進行簡要的名詞解釋。

gcc | llvm 提供編譯器 <-- gnu make 根據配置檔案進行編譯 <-- autoconf | cmake 自動生成編譯用的配置檔案

注:上面提到的各類集合和工具所能做的事情並不僅僅侷限於此。

gccllvm是我們在編譯 c 系專案時最常使用的兩個工具鏈。

gcc的全稱是 gnu compiler collection , 即 gnu 編譯器集合;

llvm的全稱就是 llvm (最開始的時候作為 low level virtual machine 的縮寫,現在涵義已經發生了變化),現在是作為 llvm 的編譯器和工具鏈集合的乙個總稱。

gcc,全稱 gnu c compiler,是 gcc 中的 c 編譯器;

g++,全稱 gnu c++ compiler,是 gcc 中的 c++ 編譯器。

clang是 llvm 集合前端中的 c 系編譯器和工具鏈。clang 相容 gcc ,clang 出現的時間比 gcc 晚,相比 gcc , clang 的編譯速度更快,錯誤提示更友好。

當專案的原始檔數量很多,結構十分複雜時,僅僅使用編譯器對專案進行編譯,會是一件十分繁瑣的事情,引用頭檔案目錄,引入原始檔,引入第三方靜態庫動態庫都會十分的繁瑣。

gnu make能夠基於前面提供的編譯器,選擇專案中合適的原始檔來生成專案所需的中間目標檔案和可執行檔案。開發者通過編寫乙個名為makefile的檔案來指導gnu make處理編譯。

autoconfm4巨集處理的擴充套件包,通過它可以生成乙個指令碼,這個指令碼能夠自動生成編譯用的配置檔案。autoconfautomake是一對。

cmake是乙個開源的軟體,開發者通過編寫獨立於平台和編譯器的配置檔案,來指導專案的編譯過程。

autoconf 中涉及的概念比較多,生成指令碼的步驟比較繁瑣, cmake 在使用上更為簡單。

llvm

gcc,the gnu compiler collection

gnu make

diff between gcc and g++

programming languages supported by gcc

clang

cmake

autoconf

交叉編譯工具簡介

前言 交叉編譯,即在一種平台上編譯,並能夠執行在另一種體系結構完全不同的平台上。交叉編譯使用的工具,一般稱為交叉編譯工具,由於它是由多個程式構成,所以又稱為交叉編譯工具鏈。交叉開發工具鏈就是為了編譯 鏈結 處理和除錯跨平台體系結構的程式 每次執行工具鏈軟體時,通過帶有不同的引數,可以實現編譯 鏈結 ...

高速C C 編譯工具 ccache

1 安裝 yum install ccache 2 檢視已安裝 rpm qa grep ccache rpm ql ccache 3 使用ccache 1 選擇性使用ccache 使用gcc gcc foo.c 使用ccache ccache gcc foo.c 2 ccache加入環境變數,取代c...

gcc 引數 gcc編譯工具簡介

編譯的過程是乙個語言轉換的過程,由人能看懂的程式語言轉換為機器能看懂的二進位制語言。yaos的開發過程中,我們選擇gcc作為這個轉換器。我使用的系統是macos ak 2 yaos akilis uname adarwin ak 2.local 19.3.0 darwin kernel versio...