Computer >> Máy Tính >  >> Lập trình >> lập trình C

Quá trình biên dịch / liên kết hoạt động như thế nào trong C / C ++?

Việc biên dịch một chương trình C ++ bao gồm ba bước -

  • Tiền xử lý - Nói một cách dễ hiểu, C Preprocessor chỉ là một công cụ thay thế văn bản và nó hướng dẫn trình biên dịch thực hiện việc xử lý trước cần thiết trước khi biên dịch thực sự. Nó xử lý các lệnh tiền xử lý như #include, #define, v.v.
  • Tổng hợp - Quá trình biên dịch diễn ra trên các tệp đã được xử lý trước. Trình biên dịch phân tích mã nguồn C ++ thuần túy và chuyển nó thành mã hợp ngữ. Điều này đến lượt nó gọi trình hợp dịch chuyển đổi mã lắp ráp thành mã máy (nhị phân) dưới dạng tệp Đối tượng. Các tệp Đối tượng này có thể tham chiếu đến các ký hiệu không được xác định. Trình biên dịch sẽ không đưa ra lỗi trừ khi mã nguồn không được định dạng tốt. Lỗi cú pháp, lỗi giải quyết quá tải không thành công, v.v. xảy ra trong bước này. Cũng lưu ý rằng các tệp đối tượng này cũng có thể được sử dụng làm thư viện tĩnh.
  • Liên kết - Trình liên kết tạo ra đầu ra biên dịch cuối cùng từ các tệp đối tượng mà trình biên dịch tạo ra. Đầu ra này có thể là một thư viện được chia sẻ (hoặc động) hoặc một tệp thực thi. Nó liên kết các tệp đối tượng bằng cách thay thế các tham chiếu không xác định bằng các địa chỉ chính xác. Các ký hiệu này phải được định nghĩa trong các tệp đối tượng khác hoặc trong các thư viện. Nếu chúng được xác định trong các thư viện khác với thư viện chuẩn, bạn cần phải chuyển chúng một cách rõ ràng tới trình biên dịch dưới dạng đối số để chúng có thể được tìm thấy và liên kết.