加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

手把手教你在Keil MDK中使用GCC編譯器工具鏈

2020/11/17
304
閱讀需 6 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

Keil MDK 是否支持編譯器?有沒有辦法選擇其他編譯器?

可能你使用其他 GUN 工具鏈進行編譯時,會出現(xiàn)類似如下錯誤:


--- Error: can't execute 'as'--- Error: can't execute 'gcc'

用于 ARM 芯片的 GCC 編譯器有許多不同的變體,現(xiàn)在 Keil MDK 仍然支持 GCC 編譯器的,下面就來講述一下在 Keil MDK 中使用 GCC 編譯器工具鏈。

1、關(guān)于 GCCGCC?原本代表“GNU C Compiler”的意思,它屬于 GNU 編譯器套件。GCC 是 GNU 推出的功能強大、性能優(yōu)越的多平臺編譯器,是 GNU 的代表作品之一。

網(wǎng)址:
https://gcc.gnu.org

目前(2020-11)GCC 已經(jīng)更新到 V10.2 版本了。

早期的 GCC 主要針對于 C 語言,隨著編程的發(fā)展,現(xiàn)在不僅支持 C 語言,還支持其他很多語言,包括 C++、Ada、Objective-C、Fortran 和 Java 等。

因此,GCC 的意思被重新定義為“GNU Compiler Collection”,也即“GUN 編譯器套件”。

GCC 受到廣大軟件開發(fā)者的喜歡,有一個很重要的原因就是免費。你會發(fā)現(xiàn)一個問題,很多開源的 IDE,基本上集成的編譯器都是 GCC,比如 STM32CubeIDE、RT-Thread Studio 等。

關(guān)于 GCC 更多的介紹,可以參看我之前分享的文章 GCC 為何如此強大?

2、下載 GCC 工具鏈這里使用的 GCC 工具鏈?其實是“GNU Arm 嵌入式工具鏈”,是 ARM 官方推薦的一套工具,主要是針對 32 位 Arm Cortex-M、 Cortex-R 和 Cortex-A 系列處理器的一套工具鏈。

“GNU Arm”包括 GNU 編譯器(GCC),可直接從 Arm 免費獲得,用于 Windows,Linux 和 Mac OS X 操作系統(tǒng)上的嵌入式軟件開發(fā)。

下載地址:

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

(公號不支持外鏈接,請復(fù)制鏈接到瀏覽器打開)

進入網(wǎng)頁,根據(jù)自己系統(tǒng)選擇合適的版本下載:

當(dāng)然,我們這里選擇 windows 版 exe 文件,或壓縮文件。(因為 Keil 只支持 Windows 版本)。

其實,你可以在 gcc 主干上找到分支:

https://gcc.gnu.org/git/gcc.git

3、安裝 GCC 工具鏈方法一:安裝 exe 文件在 windows 安裝 exe 文件,相比是一個程序員都會安裝,根據(jù)提示信息,基本上一路“next”下去就行了。

方法二:直接解壓 zip 壓縮文件如果下載的是 zip 壓縮文件,直接解壓文件到指定目錄即可。

如果你進行了第一種方法 exe 安裝,你進入安裝目錄下,你會發(fā)現(xiàn)安裝的文件和這里解壓的文件一樣。

4、Keil?配置?GCC 工具鏈這里配置方法和我之前分享文章《手把手教你升級 Keil MDK 的 ARM 編譯器》中第 3 章節(jié)【Keil 配置編譯器】方法類似。

打開工程管理,進入“Folders/Extensions”選項欄可以通過菜單:Project -> Manage -> Project items 進入。

也可以通過工具欄工程管理快捷圖標(biāo)進入:

這里切換配置編譯器工具方法比較簡單,此時就可以和往常一樣正常使用了。

5、額外說明切換編譯器會導(dǎo)致工程配置選項發(fā)生變化,比如:

配置選項發(fā)生變化都是小問題,因為不同編譯器,代碼不兼容性才是大問題,比如你直接編譯針對 Arm 編譯器的代碼,肯定會出問題。

這里的細(xì)節(jié)比較多,后期抽空再給大家描述切換編譯器代碼遷移修改的內(nèi)容。

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

作者黃工,從事嵌入式軟件開發(fā)工作8年有余,高級嵌入式軟件工程師,業(yè)余維護公眾號『strongerHuang』,分享嵌入式軟硬件、單片機、物聯(lián)網(wǎng)等內(nèi)容。