close

在系統開發中,Toolchain通常是指一組用於開發、編譯、調試和部署軟件的工具集合。

這個工具集合可能包括編譯器、連結器、除錯器、自動化測試工具、分析器、編輯器和其他一些必要的工具。

Toolchain的目的是提供開發人員一個統一的平台,讓他們可以使用這些工具來開發軟件,並且能夠確保產生的代碼能夠在目標平台上正常運行。

Toolchain可以用於各種系統開發,包括嵌入式系統、桌面應用程序、服務器端應用程序等等。

 

在開發軟體過程中,一組工具鏈(英語:toolchain)是一系列用於製作軟體程式的工具。這些工具一般一個接一個地運用,上一個工具的輸出即是下一個工具的輸入,因此得名。但工具鏈這個詞彙也可指涉這些工具並無此相依執行的限制。

通常一個軟體開發的工具鏈由以下組成:

  • 編譯器
  • 連結器 (將原始碼/目的碼轉換成可執行程式檔)
  • 函式庫 (提供與作業系統之間的介面)
  • 除錯器 (用來測試、除錯所產出的程式)

wiki:toolchain

In software, a toolchain is the set of computer programs (tools) that are used to create a product (typically another computer program or system of programs). The tools may be used in a chain, so that the output of each tool becomes the input for the next, but the term is used widely to refer to any set of linked development tools.

 

GNU工具鏈(英語:GNU toolchain)是一個包含了由GNU計劃所產生的各種編程工具的集合,由自由軟體基金會負責維護工作。這些工具形成了一條工具鏈,用於開發應用程式和作業系統

GNU工具鏈在針對嵌入式系統的Linux核心、BSD及其它軟體的開發中起著至關重要的作用。GNU工具鏈中的部分工具也被Solaris, Mac OS X, Microsoft Windows (via Cygwin and MinGW/MSYS) and Sony PlayStation 3[1]等其它平台直接使用或進行了移植。

wiki:GNU toolchain

The GNU toolchain is a blanket term for a collection of programming tools produced by the GNU Project. These tools form a toolchain (suite of tools used in a serial manner) used for developing applications and operating systems.


相關應用:

做embedded system是需要toolchain。但當編譯某些Library或是open source的程式時,若遇到廠商所提供的toolchain版本過舊而產生錯誤,就要自己建力特定版本的toolchain來解決問題。

以下是一些網友的介紹:


據說CodeSourcery的幾個員工都是領導 GCC 發展的大人物,所以CodeSourcery 出品的 toolchain品質有保證。

 

 

以下是一些常見的 toolchain 組合:

  1. Web 開發:HTML/CSS/JavaScript + React + Node.js + Express + MongoDB
  2. 行動應用程式開發:Java/Kotlin/Objective-C/Swift + Android/iOS SDK + React Native/Xamarin/Flutter
  3. 嵌入式系統開發:C/C++ + GCC + GDB + Make + OpenOCD
  4. 機器學習開發:Python + NumPy + TensorFlow + Keras + Jupyter Notebook
  5. DevOps:Git + Jenkins/Travis CI/CircleCI + Docker + Kubernetes

這些組合不是固定不變的,實際上,不同的開發團隊、專案和技術堆棧都會使用不同的工具鏈組合。
arrow
arrow
    創作者介紹
    創作者 tttt 的頭像
    tttt

    觀察筆記

    tttt 發表在 痞客邦 留言(0) 人氣()