Sự khác biệt giữa mã biên dịch và mã thực thi là gì?


Câu trả lời:


159

Biên dịch là hành động biến mã nguồn thành mã đối tượng.

Liên kết là hành động kết hợp mã đối tượng với các thư viện thành một tệp thực thi thô.

Xây dựng là chuỗi bao gồm biên dịch và liên kết, với các tác vụ có thể khác như tạo trình cài đặt.

Nhiều trình biên dịch xử lý bước liên kết tự động sau khi biên dịch mã nguồn.


19

Từ wikipedia :

Trong lĩnh vực phần mềm máy tính, thuật ngữ xây dựng phần mềm đề cập đến quá trình chuyển đổi các tệp mã nguồn thành các phần mềm độc lập có thể chạy trên máy tính hoặc kết quả của việc đó. Một trong những bước quan trọng nhất của quá trình xây dựng phần mềm là quy trình biên dịch nơi các tệp mã nguồn được chuyển đổi thành mã thực thi.

Mặc dù đối với các chương trình đơn giản , quy trình này bao gồm một tệp được biên dịch, đối với phần mềm phức tạp, mã nguồn có thể bao gồm nhiều tệp và có thể được kết hợp theo nhiều cách khác nhau để tạo ra nhiều phiên bản khác nhau.


9

Một bản dựng có thể được xem như là một tập lệnh, bao gồm nhiều bước - bước chính trong đó sẽ là biên dịch mã. Những người khác có thể

  • chạy thử nghiệm
  • báo cáo (ví dụ: bảo hiểm)
  • phân tích tĩnh
  • bước trước và sau khi xây dựng
  • chạy các công cụ tùy chỉnh trên các tập tin nhất định
  • tạo cài đặt
  • ghi nhãn chúng và triển khai / sao chép chúng vào kho lưu trữ

7

Chúng thường được sử dụng để có nghĩa là điều tương tự. Tuy nhiên, "xây dựng" cũng có thể có nghĩa là toàn bộ quá trình biên dịch và liên kết toàn bộ ứng dụng (trong trường hợp ví dụ C và C ++), hoặc thậm chí nhiều hơn, bao gồm, trong số những thứ khác

  • bao bì
  • kiểm tra tự động (đơn vị và / hoặc tích hợp)
  • thế hệ trình cài đặt
  • cài đặt / triển khai
  • tạo tài liệu / trang web
  • tạo báo cáo (ví dụ kết quả kiểm tra, bảo hiểm).

Có những hệ thống như Maven , khái quát hóa điều này với khái niệm vòng đời , bao gồm nhiều giai đoạn, tạo ra các tạo tác khác nhau, có thể sử dụng kết quả và tạo tác từ các giai đoạn trước.


5

Từ kinh nghiệm của tôi, tôi sẽ nói rằng "biên dịch" đề cập đến việc chuyển đổi một hoặc một số tệp nguồn có thể đọc được thành mã byte (tệp đối tượng trong C) trong khi "xây dựng" biểu thị toàn bộ quá trình biên dịch, liên kết và bất cứ điều gì khác cần phải có thực hiện toàn bộ gói hoặc dự án.


2

Hầu hết mọi người có thể sẽ sử dụng các thuật ngữ thay thế cho nhau. Bạn có thể thấy một sắc thái: biên dịch chỉ là bước mà bạn chuyển một số tệp nguồn thông qua trình biên dịch (gcc, javac, bất cứ điều gì).

Tòa nhà có thể được coi là quá trình kiểm tra nguồn tổng quát hơn, tạo thư mục đích cho các tạo phẩm được biên dịch, kiểm tra các phụ thuộc, chọn những gì phải được biên dịch, chạy thử nghiệm tự động, tạo tar / zip / ditribution, đẩy lên ftp , Vân vân...

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.