2011-08-17 10 views
7

Có ba tên hệ thống mà bản dựng biết về: máy bạn đang xây dựng (xây dựng), máy bạn đang tòa nhà cho (máy chủ) và máy GCC sẽ tạo mã cho (mục tiêu). Khi bạn định cấu hình GCC, bạn chỉ định các từ khóa này với ‘--build =’, ‘--host =’ và ‘--target =’.Sự khác biệt giữa --host và --target trong gcc là gì?

Không phải là the machine that you are building forthe machine that GCC will produce code for điều tương tự? Có gì khác biệt?

+0

có thể trùng lặp của [Sự khác biệt của './Configure' tùy chọn' --build', '--host' và' --target' là gì?] (Http://stackoverflow.com/questions/5139403/whats -the-different-of-configure-option-build-host-và-mục tiêu) –

Trả lời

8

Có thể tạo gcc làm trình biên dịch chéo. Tức là, bạn có thể xây dựng một gcc chạy trên một kiến ​​trúc (máy chủ) nhưng tạo mã cho một kiến ​​trúc khác (đích).

Nơi phổ biến bạn sẽ gặp phải đây là khi xây dựng mã cho nền tảng được nhúng. Nếu bạn đang viết mã cho bộ vi xử lý trong tủ lạnh của mình, bạn sẽ thích xây dựng nó trên máy tính để bàn chứ không phải trong tủ lạnh!

Một số người sử dụng trình biên dịch chéo để xây dựng mã cho một hệ điều hành khác trên cùng một kiến ​​trúc. Ví dụ: có thể nhắm mục tiêu Windows từ máy chủ Linux bằng chuỗi công cụ MinGW.

+1

vì vậy, đối với tủ lạnh tương tự, máy chủ là máy tính để bàn của chúng tôi và mục tiêu là tủ lạnh? Xin vui lòng sửa tôi nếu tôi sai – linvenuza

+0

Vâng, đúng vậy. – Ned

+0

eh .. đã đưa ra bài viết này và chỉ muốn nói rằng nó có vẻ là một câu trả lời sai .. Nếu chúng tôi đang chuẩn bị gcc như một trình biên dịch cho tủ lạnh, sau đó host = tủ lạnh sẽ được thích hợp. Tôi bối rối bởi vì có 7 phiếu bầu cho điều này. – infoclogged