一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

C語言編譯器之一,GCC

 菌心說 2021-08-24

C語言作為高級(jí)語言,用其編寫的程序指令機(jī)器并不能識(shí)別,因此需要有一個(gè)編譯器將其轉(zhuǎn)換為機(jī)器可識(shí)別的二進(jìn)制指令。C語言已經(jīng)出現(xiàn)50多年的時(shí)間,其相關(guān)的編譯器種類眾多,從最早先的turbo c系列編譯器,到大名鼎鼎的gcc,還有基于LLVM的clang,各有優(yōu)劣,而且在多個(gè)平臺(tái)(如windows、Linux、MAC)上都廣泛使用。同時(shí)由于Windows的強(qiáng)勢(shì)存在,其自家的Visual C/C++編譯器也有不少的應(yīng)用。

一般C語言程序是在PC上編寫,并將其編譯成可執(zhí)行文件,最終放到電腦或設(shè)備上去執(zhí)行。

C語言編譯器之一,GCC

現(xiàn)在主流PC的CPU架構(gòu)+操作系統(tǒng)組合有多種,其編譯生成的可執(zhí)行程序可能在不同的架構(gòu)下執(zhí)行,因此對(duì)于同一類編譯器,可能需要針對(duì)CPU架構(gòu)和系統(tǒng)組合也要有相應(yīng)的版本。

C語言編譯器之一,GCC

注:蘋果自研的ARM架構(gòu)CPU M1將會(huì)在2022年用于最新的MAC pro筆記本中。

編譯程序一般分為兩種情況(如下舉例):

A、 在X86+Windows系統(tǒng)下編譯C程序,可以直接在X86+Windows系統(tǒng)的PC上直接執(zhí)行;

B、 在X86+Windows系統(tǒng)下需要x86-Arm交叉編譯器編譯C程序,才能在ARM平臺(tái)設(shè)備上執(zhí)行;

因此需要根據(jù)開發(fā)編譯平臺(tái)與目標(biāo)運(yùn)行平臺(tái)選擇編譯器類別,而有些IDE集成了官方對(duì)應(yīng)的C編譯,安裝就可以使用,如:

1、對(duì)于Visual C/C++編譯器,集成開發(fā)環(huán)境Visual Studio也集成了Visual C/C++編譯器,安裝Visual Studio后,即可IDE中編輯/編譯C程序;

2、對(duì)于ARM(R/M系列)和8051系列,集成開發(fā)環(huán)境(IDE)中可能已經(jīng)集成了交叉編譯器環(huán)境,如MDK KEIL中已經(jīng)集成了ARMCC交叉編譯器,安裝MDK后,就可以在IDE中編輯/編譯C程序。

C編譯器很多,以下分別介紹當(dāng)前主流的幾個(gè)C編譯器!首先是大名鼎鼎的GCC編譯器。

C語言編譯器之一,GCC

一、GCC編譯器

GCC是(GNU Compiler Collection)的縮寫,是由GNU開發(fā)的編程語言譯器。最初是為C語言而編寫,后面陸陸續(xù)續(xù)擴(kuò)充了C++、 Objective-C、 Fortran、Java、Ada和Go語言,也包括了這些語言的庫(如libstdc++,libgcj等),因此GCC是GNU編譯器套件。

Gcc編譯器鏡像在其官方FTP服務(wù)器上可以下載,目前最新版本為gcc-11.2.0。

C語言編譯器之一,GCC
C語言編譯器之一,GCC

1、 gcc for ARM

當(dāng)今移動(dòng)端手機(jī)處理器基本上是基于ARM架構(gòu),而許多智能設(shè)備或物聯(lián)網(wǎng)設(shè)備內(nèi)置芯片的CPU內(nèi)核也是基于ARM,因此,ARM公司也不斷更新維護(hù)針對(duì)ARM架構(gòu)的交叉c編譯器。

ARM從1985年設(shè)計(jì)的ARMv1芯片,到現(xiàn)在ARMv9,已經(jīng)有30幾年的歷史,各個(gè)架構(gòu)典型的處理器版本如下表所示:

C語言編譯器之一,GCC

目前廣泛使用的是ARMv7、ARMv8;ARMv7在智能設(shè)備芯片、微處理器MCU上應(yīng)用比較多,比如NXP推出的IM6ULL采用ARM Cortex-A7,ST推出的STM32F4采用ARM Cortex-M4內(nèi)核;而目前流行的手機(jī)處理器,基本都是ARMv8架構(gòu)中的Cortex-A系列中,比如現(xiàn)在華為P50系列的麒麟9000處理器就是采用ARM Cortex-A77,小米11系列的驍龍888處理器采用ARM Cortex-A78,因此,理論上驍龍888比麒麟9000處理器會(huì)強(qiáng)一些。

ARMv9架構(gòu)是ARM今年剛推出的全新的下一代架構(gòu),首款基于Armv9架構(gòu)的大核CPU Arm Cortex-A710以及首款高效率小核Arm Cortex-A510的手機(jī),估計(jì)明年會(huì)到來。

C語言編譯器之一,GCC

ARMv8的架構(gòu)繼承以往ARMv7與之前處理器技術(shù)的基礎(chǔ),除了現(xiàn)有的16/32bit的Thumb2指令支持外,也向前兼容和擴(kuò)充了現(xiàn)有A32(ARM 32bit)指令集的AArch32架構(gòu) ,新增了基于64bit的AArch64架構(gòu);

C語言編譯器之一,GCC

A、 基于32位Arm Cortex-A, Arm Cortex-M, and Arm Cortex-R處理器的GCC交叉編譯工具鏈(基本上ARMv7架構(gòu)下使用),ARM開發(fā)者網(wǎng)站提供了下載,包含Windows, Linux, Mac OS X操作系統(tǒng)平臺(tái),目前最新版本為10.3-2021.07,下載地址:

https://developer./tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads

C語言編譯器之一,GCC
C語言編譯器之一,GCC

A、 基于AArch32(擴(kuò)充版32位)與AArch64(新增64位)的交叉編譯器(ARMv8架構(gòu)下),ARM開發(fā)者網(wǎng)站提供了下載,包含Windows, Linux, Mac OS X操作系統(tǒng)平臺(tái),目前最新版本為10.3-2021.07,下載地址:

https://developer./tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads

C語言編譯器之一,GCC
C語言編譯器之一,GCC
C語言編譯器之一,GCC

2、 Linux下gcc編譯器

Linux一般自帶gcc編譯器,可以通過gcc –v查看其版本號(hào),如下圖:

C語言編譯器之一,GCC

從打印信息中 “Target:x86-64-linux-gnu”,可以看出默認(rèn)的gcc編譯器是針對(duì)x86架構(gòu)的,因此編譯得出的可執(zhí)行文件只能在x86架構(gòu)下執(zhí)行;而一般情況是在Linux下開發(fā)編譯C程序,然后在ARM下執(zhí)行,因此需要安裝交叉編譯C編譯器。

在ARM官網(wǎng)上可以下載最新版本,或芯片廠家會(huì)提供對(duì)應(yīng)修改過的版本,同時(shí)有些第三方組織提供修改過的編譯器版本,如Linaro GCC編譯器,下載地址為:

https://snapshots./components/toolchain/

C語言編譯器之一,GCC

按以上4個(gè)步驟下載gcc-linaro-4.9.4-2017.01-
x86_64_arm-linux-gnueabihf.tar版本編譯器,并上傳至ubuntu系統(tǒng)中,拷貝到目錄/usr/local/arm中對(duì)交叉編譯工具進(jìn)行解壓,解壓命令如下:sudo tar –vxf gcc-linaro-4.9.4-2017.01-
x86_64_arm-linux-gnueabihf.tar,解壓完成會(huì)生成一個(gè)名為gcc-linaro-4.9.4-2017.01-
x86_64_arm-linux-gnueabihf的文件夾就是交叉編譯工具鏈。

C語言編譯器之一,GCC

然后修改環(huán)境變量,執(zhí)行sudo vi /etc/profile命令打開/etc/profile文件,在文件末尾添加PATH路徑,這樣交叉編譯工具鏈就安裝成功。

C語言編譯器之一,GCC

最后執(zhí)行命令sudo apt-get install lsb-core lib32stdc++6安裝標(biāo)準(zhǔn)C庫, 然后讀取版本號(hào)驗(yàn)證工具鏈安裝正確。

C語言編譯器之一,GCC

3、 Windows下的gcc編譯器

3.1、MinGW-w64編譯器

MinGW-w64編譯器是gcc編譯器的Windows版本,MinGW 的全稱是:Minimalist GNU on Windows,它也是一個(gè)可自由使用和自由發(fā)布的Windows特定頭文件和使用GNU工具集導(dǎo)入庫的集合,它使用 Windows 的C語言運(yùn)行庫,可以將C源碼編譯成可在Windows下執(zhí)行。

進(jìn)入MinGW-w64下載最新版本的編譯器:

http://www./doku.php

C語言編譯器之一,GCC

當(dāng)前最新版本為V.9.0.0,點(diǎn)擊Downloads下載,進(jìn)入下載頁面;MinGW-w64 的代碼和可執(zhí)行文件被托管存儲(chǔ)在 SourceForge 上,如下鏈接地址:

https:///projects/mingw-w64/files/mingw-w64/mingw-w64-release/

C語言編譯器之一,GCC

往下拉找到可執(zhí)行文件MinGW-W64-install.exe,下載直接雙擊安裝,不用去編譯源代碼。

C語言編譯器之一,GCC

需要連接網(wǎng)絡(luò)在線安裝mingw-w64-install.exe,在進(jìn)行版本和主機(jī)架構(gòu)選擇后就會(huì)自動(dòng)下載mingw組件。

C語言編譯器之一,GCC

組件下載完成后,在bin目錄下包含了各種工具,如:gcc.exe,g++.exe,gdb.exe,將bin文件夾路徑添加到系統(tǒng)環(huán)境變量PATH中,至此,mingw安裝完成。

C語言編譯器之一,GCC

驗(yàn)證mingw編譯功能。

C語言編譯器之一,GCC

3.2、集成開發(fā)環(huán)境(IDE)

以上使用mingw編譯C語言采用的是命令行的形式,對(duì)于學(xué)習(xí)C語言來說是非常清晰的,但是開發(fā)項(xiàng)目時(shí)C文件數(shù)量眾多,一個(gè)個(gè)編譯顯得不現(xiàn)實(shí),因此需要編寫makefile來統(tǒng)一編譯管理,這樣就回到了Linux下的C語言編程,體現(xiàn)不出Windows桌面系統(tǒng)的優(yōu)勢(shì),因此在Windows下,許多集成開發(fā)環(huán)境(IDE)集成了MinGW編譯器,PC應(yīng)用開發(fā)的工具有QT,Code::Blocks,Dev C++ ,C-Free等,嵌入式開發(fā)的工具有MDK(KEIL),IAR等。

3.2.1、QT

QT是一個(gè)跨平臺(tái)的開發(fā)環(huán)境,WINDOWS/LINUX/MAC下都可以用,同一套代碼分別在三個(gè)平臺(tái)下編譯就可生成各個(gè)平臺(tái)的應(yīng)用程序,其下載的官方網(wǎng)站如下:

https://download./archive/qt/;

C語言編譯器之一,GCC

目前最新版本為6.1,選擇一個(gè)合適版本下載安裝,QT在安裝時(shí)可以選擇配套的MinGW版本,這樣編寫C/C++項(xiàng)目工程時(shí),一鍵編譯就很方便。

C語言編譯器之一,GCC

3.2.2、Code::Blocks

Blocks是一個(gè)免費(fèi)的C/ c++和Fortran IDE,IDE集成了MinGW編譯器,官方下載地址如下:
https://www./downloads/。

C語言編譯器之一,GCC

下載后直接安裝即可。

3.2.3、Dev-C++

devc ++是一個(gè)免費(fèi)的Windows集成開發(fā)程序,內(nèi)嵌 GCC 編譯器(GCC 編譯器的 Windows 移植版,也就是MinGW),是 NOI、NOIP 等比賽的指定工具。Dev C++ 的優(yōu)點(diǎn)是體積?。ㄖ挥袔资祝?、安裝卸載方便、學(xué)習(xí)成本低,缺點(diǎn)是調(diào)試功能弱。

下載地址:
https:///projects/orwelldevcpp/

https://bloodshed-dev-c.en./

C語言編譯器之一,GCC

Dev C++ 下載完成后會(huì)得到一個(gè)安裝包(.exe 程序),雙擊該文件即可開始安裝。

3.2.4、C-Free

C-Free是一款集成開發(fā)環(huán)境(IDE),支持多種編譯器的專業(yè)化C/C++,使用者可以輕松地編輯、編譯、連接、運(yùn)行、調(diào)試C/C++程序。Visual Studio的很龐大臃腫,而C-Free整個(gè)軟件才14M,非常輕巧,安裝簡單,可以自由切換編譯器。C-Free最新版本是5.0,注冊(cè)需要80RMB,可以免費(fèi)試用30天,過期不注冊(cè)將無法使用。C-Free也提供了永久免費(fèi)版,可以無限使用,版本號(hào)為4.0。

官方下載地址:
https://c-free./

C語言編譯器之一,GCC

C-Free可配置MinGW 2.95/3.x/4.x/5.0編譯器。

3.2.5、Keil

在基于Cortex-M或8051系列MCU的嵌入式開發(fā)中,許多優(yōu)秀的IDE也都集成了交叉編譯工具,如源自德國Keil公司,開發(fā)幾個(gè)分別用于ARM系列、8051系列的集成IDE,內(nèi)部集成了編譯器(ARMCC、Keil C),這些編譯器就是集成的交叉編譯器,就是在windows下編譯,生成的可執(zhí)行程序在ARM或51內(nèi)核執(zhí)行。

官方下載地址:
https://www./download/product/

C語言編譯器之一,GCC

3.2.6、IAR Embedded Workbench

總部在北歐的瑞典的IAR公司的集成開發(fā)環(huán)境IAR Embedded Workbench,也是專用于Cortex-M或8051系列MCU的嵌入式開發(fā)。IAR也是集成了IAR C/ C++編譯器。

官方下載地址:
https://www./products/#/search

C語言編譯器之一,GCC

IAR工具有免費(fèi)30天的試用期,如果自己學(xué)習(xí)使用,可以破解。

4、 Mac下的gcc編譯器

Mac OS X 10.4版本前,Mac也是采用gcc編譯器編譯Object-C,Mac OS X 10.5版本之后,LLVM-Clang編譯器開始逐漸替代GCC編譯器成為Mac的主要編譯器,因此,后續(xù)gcc等工具默認(rèn)不再M(fèi)ac OS X系統(tǒng)中安裝,而有時(shí)在MAC OS X下編譯開源軟件項(xiàng)目可能需要gcc編譯器,因此以下提供幾個(gè)常用的gcc安裝方法(總結(jié)于其它博主的安裝方法)。

4.1、命令行工具

命令行工具作為XCODE IDE的可選軟件包,也就是Command Line Tools,為mac終端用戶提供了許多常用的工具,如實(shí)用程序和編譯器,包括svn,git,make,GCC,clang,perl,size,strip,strings,libtool,cpp,what等,因此安裝了Command Line Tools,就包含了GCC編譯器軟件,有幾個(gè)方式安裝Command Line Tools。

4.1.1、通過XCODE安裝

安裝XCODE后,默認(rèn)不安裝Command Line Tools,但是可以通過菜單可視化安裝命令行工具,如下圖所示:

C語言編譯器之一,GCC

4.1.2、通過Command Line Tools安裝包

XCODE軟件很大,有幾十G空間,因此可以選擇下載 Command Line Tools安裝包安裝,前提是有APPLE開發(fā)者賬號(hào),登錄開發(fā)者網(wǎng)站下載xx.mpkg安裝包
https://developer.apple.com/cn/,

C語言編譯器之一,GCC

4.1.3、通過xcode-select –install命令安裝

命令xcode-select是一個(gè)在多個(gè)命令行工具目錄之間切換的實(shí)用程序,如下相關(guān)命令選項(xiàng):

A、 xcode-select [-help] ;查看幫助

B、 xcode-select [-switch xcode_folder_path] ;切換xcode版本

C、 xcode-select [-print-path] ;查看當(dāng)前版本xcode路徑

D、 xcode-select [-version] ;查看xcode版本

E、 xcode-select [–install] ;安裝xcode工具

通過xcode-select –install命令安裝方法如下:

C語言編譯器之一,GCC

4.2、通過brew包管理工具安裝

a、安裝包管理工具,terminal終端執(zhí)行如下指令(國內(nèi)安裝源),安裝home brew:

安裝完整版:

/bin/zsh -c '$(curl -fsSL https:///cunkai/HomebrewCN/raw/master/Homebrew.sh)'

安裝簡化版:

/bin/zsh -c '$(curl -fsSL https:///cunkai/HomebrewCN/raw/master/Homebrew.sh)' speed

卸載腳本:

/bin/zsh -c '$(curl -fsSL https:///cunkai/HomebrewCN/raw/master/HomebrewUninstall.sh)'

安裝錯(cuò)誤查詢地址:

https:///cunkai/HomebrewCN/blob/master/error.md

b、執(zhí)行指令brew install gcc安裝gcc。

C語言編譯器之一,GCC

c、執(zhí)行g(shù)cc –v查看版本

C語言編譯器之一,GCC

發(fā)現(xiàn)gcc執(zhí)行時(shí)映射到clang,因此后續(xù)調(diào)用gcc需要帶上版本號(hào),如gcc-10 –v;編譯程序也一樣:gcc-10 main.cpp -o mainApp -lstdc++。

4.3、通過gcc安裝包安裝

a、到gcc托管網(wǎng)站sourceforge上下載所需的gcc版本,如下網(wǎng)站:

https:///projects/hpc/files/hpc/gcc/;

C語言編譯器之一,GCC

b、打開terminal終端,進(jìn)入gcc-9.2-bin.tar.gz壓縮包所在的目錄,然后執(zhí)行解壓:

gunzip gcc-9.2-bin.tar.gz
sudo tar -xvf gcc-9.2-bin.tar

c、添加環(huán)境變量,打開配置文件touch ~/.bash_profile,添加PATH路徑:

C語言編譯器之一,GCC

d、激活配置:source ~/.bash_profile,然后gcc –version查看版本信息:

C語言編譯器之一,GCC

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    中文字幕人妻av不卡| 成人免费在线视频大香蕉| 人妻熟女中文字幕在线| 少妇人妻一级片一区二区三区| 久久这里只有精品中文字幕| 真实偷拍一区二区免费视频| 欧美成人免费一级特黄| 日本午夜免费观看视频| 日韩一区二区免费在线观看 | 中文字幕乱码亚洲三区| 日韩精品成区中文字幕| 日韩欧美精品一区二区三区| 精品人妻一区二区三区在线看| 亚洲精品偷拍视频免费观看| 日韩精品日韩激情日韩综合| 不卡免费成人日韩精品| 久久精品国产99国产免费| 国产综合欧美日韩在线精品| 亚洲专区一区中文字幕| 嫩呦国产一区二区三区av| 国产在线观看不卡一区二区| 日本午夜免费啪视频在线| 欧美视频在线观看一区| 日韩国产亚洲一区二区三区| 国产一区欧美午夜福利| 国产欧美日韩精品自拍| 国产一区二区三区成人精品| 日韩丝袜诱惑一区二区| 中国黄色色片色哟哟哟哟哟哟| 中文字幕人妻av不卡| 国产精品久久精品国产| 女人精品内射国产99| 可以在线看的欧美黄片| 国产精品白丝久久av| 在线免费观看一二区视频| 中文字幕人妻综合一区二区| 91精品国产av一区二区| 91天堂免费在线观看| 日本熟女中文字幕一区| 在线欧美精品二区三区| 国产精品欧美一区二区三区不卡|