2012-08-27 27 views
7

Toà nhà là trình tự bao gồm biên dịch và liên kết.Tiến trình xây dựng .NET và liên kết

Trong .NET mã nguồn được biên dịch thành bộ phận có chứa Ngôn ngữ trung gian chung và nhập thông tin. Tại thời gian chạy trình biên dịch JIT chuyển đổi mã CIL thành mã gốc.

Tôi không hiểu, trong .NET, cách thức và thời điểm liên kết diễn ra.

Ai đó có thể giải thích quy trình này không?

Cảm ơn trước

+0

Chính xác bạn có ý gì khi * liên kết *? –

+0

@SergRogovtsev [Linker (computer)] (http://en.wikipedia.org/wiki/Linker_%28computing%29) – Nasreddine

+0

@Nacereddine là bạn tác giả của câu hỏi này? –

Trả lời

6

Không có liên kết nào về C++.

Ý tôi là, không có bất kỳ tệp "obj"/"lib" trung gian nào, có thể được phân phối và liên kết với một tệp "obj" khác sau đó. Tham chiếu đến một assembly luôn có hành vi động (luôn là thư viện liên kết động), trái ngược với liên kết tĩnh C++.

Thứ gì đó như liên kết là tạo ra .netmodule. Bạn có thể xây dựng mã nguồn .NET với trình biên dịch thành .netmodule thay vì lắp ráp (xem here, đặc biệt là phần "Differences Between C# Compiler and C++ Compiler Output"), và sau đó bạn có thể liên kết các mô-đun này với nhau thành một assembly duy nhất (xem al.exe). Tuy nhiên, đây không phải là thực tế phổ biến - hầu hết các hội đồng có chứa một mô-đun duy nhất, và công việc này (nguồn -> mô-đun -> lắp ráp) đã được thực hiện bởi trình biên dịch (ví dụ, csc.exe) phía sau hậu trường. Ngoài ra, tôi không thể nhớ bất kỳ sản phẩm nào được phân phối lại dưới dạng tập hợp .netmodule (không phải là một tập hợp các cụm ).

+0

Cảm ơn bạn đã trả lời :) – ProgNet

+0

Bạn được chào đón. – Dennis

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