Toolchain là gì

Khái niệm toolchain

Toolchain là tập hòa hợp của các tool dùng để làm biên dịch source code thành các tệp tin executable có thể chạy được trên target device (sản phẩm thật). Toolchain bao gồm compiler, linker, những tlỗi viện runtime với một trong những tool linc tinh khác. thường thì thì toolchain mang đến Linux đã based trên các yếu tắc của GNU Project (http://www.gnu.org). Một toolchain về cơ phiên bản đang luôn có ít nhất 3 yếu tắc sau

Binutils: là tập phù hợp những binary tool nhỏng as (assembler), ld (linker), ar, objcopy, … Compiler: C compiler và C++ compiler C library: là một trong bộ những API chuẩn dựa trên POSIX, những ứng dụng áp dụng C library nhằm giao tiếp với kernel
*

Chúng ta có thể tự build ra toolchain dành cho platsize của chính bản thân mình từ bỏ source code sử dụng những build system nhỏng Buildroot hoặc Yocto lớn Project hoặc cũng rất có thể mang thẳng binary của toolchain về xuất phát từ một vendor như thế nào kia (hoàn toàn có thể là có phí tổn hoặc free) hoặc cũng rất có thể được những hardware vendor Tặng Kèm kèm lúc bạn đặt hàng phần cứng của mình.

Bạn đang xem: Toolchain là gì

Native sầu toolchain cùng Cross toolchain

Có thể phân tách toolchain ra làm 2 nhiều loại tùy từng mục đích: Native toolchainCross toolchain.

Native sầu toolchain: Loại toolchain chạy trên hệ thống giống cùng với target device (device dùng làm run công tác build ra vì toolchain). Thường là toolchain đến desktop dùng để build ra các chương trình chạy trên destop luôn.

Xem thêm: Superiority Complex Là Gì Trong Tiếng Việt? Superiority Complex Nghĩa Là Gì Trong Tiếng Việt

Cross toolchain: Loại toolchain này chạy xe trên hệ thống khác với target device, ví dụ dùng desktop nhằm build ra công tác chạy trên một thứ nhúng không giống. Toolchain này hỗ trợ cho quy trình cải tiến và phát triển ứng dụng trngơi nghỉ yêu cầu nkhô hanh hơn vì bạn cũng có thể develop phần mềm bên trên desktop PC và load chúng lên chạy trên target device.

Hầu hết software trở nên tân tiến cho các khối hệ thống nhúng Linux đa số được tiến hành bên trên desktop PC cùng cần sử dụng cross toolchain để build cũng chính vì các lắp thêm nhúng thông thường sẽ có cấu hình yếu đuối rộng nhiều đối với desktop, tinh giảm về CPU, memory, storage cần không cân xứng đến development thẳng trên đó.

Xem thêm: Điểm Tụ Là Gì - Khi Xây Dựng Hình Chiếu Phối Cảnh Một Điểm Tụ

CPU architectures

Các CPU không giống nhau sẽ bắt buộc những toolchain khác nhau để build ra công tác rất có thể run được trên CPU kia. Các nhân tố sau của CPU đã ảnh hưởng lên toolchain tương ứng:

CPU Architecture: arm, x86_64, mips, … Big endian giỏi Little endian Floating point support: Không đề nghị processor nào thì cũng kân hận cung cấp tính tân oán floating point bởi hardware. Đối với CPU mà processor của chính nó không có hardware floating point thì toolchain phải cấu hình nhằm cần sử dụng thư viện software floating point Application Binary Interface (ABI): có thể là abi, eabi, eabihf

Tên của compiler nói lên điều gì ?

Tên của compiler trong một toolchain sẽ mang đến họ biết một số trong những ban bố về toolchain kia, gồm những: CPU Architecture Vendor: nhà cung cấp/ công ty trở nên tân tiến ra toolchain, ví dụ: linaro, buildroot, poky, … hoặc none Kernel: luôn luôn luôn là “linux” cùng với toolchain đến Linux ABI: gnueabi, gnueabihf, uclibcgnueabi, hoặc uclibcgnueabihfLưu ý rằng name của compiler rất có thể không cất rất đầy đủ cả 4 ban bố bên trên.Ví dụ: aarch64-poky-linux-gcc: cpu architecture là arm 64 bits, vendor là poky, kernel linux gcc-arm-none-eabi: cpu architecture là arm, vendor là none tức là được phát triển vì chưng community, ABI là eabi (Extended Application Binary Interface)

Sysroot, library, và header files

sysroot là 1 thư mục của toolchain, nó đựng các tệp tin header, thư viện với các file cấu hình mang lại bài toán biên dịch chương trình. Mốt compiler của toolchain tư vấn kiểm tra location của sysroot bằng comm& line :


Chuyên mục: Định Nghĩa