2009-05-22 28 views

Trả lời

22

Cross-compilation là hành động biên dịch mã cho một hệ thống máy tính (thường được gọi là đích) trên một hệ thống khác, được gọi là máy chủ lưu trữ.

Đây là một kỹ thuật rất hữu ích, ví dụ khi hệ thống đích quá nhỏ để lưu trữ trình biên dịch và tất cả các tệp có liên quan.

Ví dụ phổ biến bao gồm nhiều hệ thống được nhúng, nhưng cũng có bảng điều khiển trò chơi điển hình.

+2

oh..so u biên dịch mã trên một hệ thống..và triển khai thực thi trong hệ thống khác? –

+1

Liên kết wikipedia "bắt buộc": http://en.wikipedia.org/wiki/Cross_compilation – FeatureCreep

+1

Có. Và các hệ thống có kiến ​​trúc khác nhau. – Stephan202

2

Theo nghĩa hẹp, đó là việc biên dịch mã trên một máy chủ được dự định chạy trên một máy chủ khác.

Thông dụng nhất nó được sử dụng với tham chiếu đến biên dịch cho kiến ​​trúc không tương thích nhị phân với máy chủ - ví dụ, xây dựng nhị phân RISC trên nền tảng CPU CISC hoặc 64-bit nhị phân trên hệ thống 32 bit. Hoặc, ví dụ, xây dựng phần mềm dự định chạy trên các thiết bị nhúng (có lẽ sử dụng kiến ​​trúc CPU ARM) trên các hệ điều hành dựa trên Intel PC.

6

Để "biên dịch chéo" là biên dịch nguồn trên một hộp Linux có ý định chạy trên hộp MAC hoặc Windows. Điều này thường được thực hiện bằng cách sử dụng một plugin biên dịch chéo, sẵn có từ nhiều máy chủ web khác nhau trên mạng. Nếu một người cài đặt một trình biên dịch chéo vào hộp Linux của họ được thiết kế để biên dịch cho các hộp Windows. Sau đó, họ có thể biên dịch cho một hộp Linux/* NIX cũng như có tùy chọn biên dịch và liên kết tệp thực thi Windows sẵn sàng. Điều này là cực kỳ thuận tiện cho một lập trình viên tự do có quyền truy cập vào không quá một hộp Linux/Windows/MAC. Lưu ý rằng các trình biên dịch chéo khác nhau sẽ cho phép nhiều ứng dụng, một số trong đó bạn có thể hoặc có thể không nhận thấy là hữu ích, do đó một sự xem xét kỹ lưỡng về tệp README của plugin.

Bạn có một dự án cụ thể nào trong đầu rằng bạn muốn áp dụng phương pháp biên dịch chéo?

2

Trình biên dịch chéo biên dịch mã nguồn từ một kiến ​​trúc này sang kiến ​​trúc khác.

Ví dụ: hello.c

  1. gcc hello.c (gcc là một trình biên dịch cho kiến ​​trúc x86.)
  2. arm-cortexa8-linux-gnueabihf-gcc hello.c
    (tay -....- gcc là một trình biên dịch cho kiến ​​trúc cánh tay.) Đây bạn đang biên dịch trên máy chủ cho một bảng mục tiêu (ví dụ như rpi, beaglebone, wega board). Trong ví dụ này, arm-cortexa8-linux-gnueabihf-gcc được gọi là 'trình biên dịch chéo'.

Quá trình này được gọi là biên dịch chéo.
xem liên kết để biết thêm thông tin cross compilation

Các vấn đề liên quan