2010-11-02 65 views
8

Tôi đã lập trình được một thời gian ở trình độ trung cấp. Tôi đã thực hiện cùng một mã trong các trình biên dịch khác nhau (chủ yếu là GCC và MinGW), nhưng tôi không thể tạo ra sự khác biệt giữa các trình biên dịch này. Ý tôi là cách nào tốt hơn cái kia? Hay điều gì khiến chúng khác biệt? Có một số nhu cầu đặc biệt mà bạn có thể muốn sử dụng GCC và cho những người khác có thể là MinGW?Sự khác nhau giữa các trình biên dịch Borland, GCC và MinGW là gì?

+0

MinGW sử dụng GCC, nếu tôi nhớ lại. –

+0

Điều chính về trình biên dịch Borland là nó không thuộc về Borland (hoặc bất cứ điều gì chúng được đặt tên trong năm nay) nữa. Họ bán nó cho Embarcadero. – sbi

+2

Khóa "h" của bạn có bị hỏng không? –

Trả lời

5

MinGW và GCC thực sự là cùng một trình biên dịch bên dưới. MinGW là một cổng GCC cho nền tảng Windows.

Những lý do tại sao bạn sẽ sử dụng các trình biên dịch khác nhau (như trong, dựa trên khác nhau trước đầu) là:

  • Bạn có một thư viện nhị phân duy nhất là bảo đảm để chơi đẹp chỉ khi bạn sử dụng các trình biên dịch đặc biệt và những biến thể này là các trình biên dịch khác nhau cho các nền tảng khác nhau
  • Bạn cần nhắm mục tiêu nhiều nền tảng và không có trình biên dịch nhắm mục tiêu tất cả nền tảng của bạn
  • Bạn có mã cũ sử dụng các phần mở rộng trình biên dịch cụ thể trên các nền tảng khác nhau.
+0

vì vậy có nghĩa là, tôi là nếu có một tập tin nhị phân biên dịch lấy từ một trình biên dịch, nó có thể không chạy nếu tôi đã cố gắng thực hiện nó thông qua trình biên dịch khác? – Rahul

+1

@Rahul: Khi bạn có một tệp thực thi, bạn không cần trình biên dịch nữa để thực thi nó. Nếu bạn có một thư viện được xây dựng với trình biên dịch A thì nó không thể được sử dụng với trình biên dịch B, trừ khi cả hai trình biên dịch đều nhắm mục tiêu cùng một nền tảng và một trong số chúng đã ghi lại rằng nó được hỗ trợ. –

4

Khi nghi ngờ, hãy sử dụng gcc. Nó là một trình biên dịch đáng kính, cũ và được thử nghiệm miễn phí và được sử dụng rất nhiều, đặc biệt trong không gian Linux. minGW là một cổng của một số tiện ích phát triển GNU cho Windows, bao gồm gcc.

Tôi chưa sử dụng trình biên dịch của Borland. Lý tưởng nhất, các chương trình của bạn được biên dịch với nó sẽ chạy chính xác như khi chúng được biên dịch bằng gcc.

Gcc và Borland về cơ bản cũng làm như vậy. Đơn giản hóa, chúng lấy các tệp mã nguồn làm đầu vào và nhổ ra các tệp thực thi dưới dạng đầu ra. Việc thực hiện nội bộ của họ rất khác nhau, nhưng đó không phải là mối quan tâm của bạn.

Sự khác biệt quan trọng đối với bạn là cờ dòng lệnh và thông báo lỗi/cảnh báo khi có sự cố.

0

Một sự khác biệt lớn là Borland chỉ tập trung vào hệ thống Windows (ít nhất là khi tôi đang sử dụng) và như vậy nó có rất nhiều lệnh và thư viện Windows tùy chỉnh thực sự tốt đẹp. GCC là sooo nhiều hơn nữa chung chung rằng nó có thể mất nhiều công việc nhiều hơn để làm những điều tương tự mà Borland có thể làm w/o nhiều fuss.

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