Общий линкер на все языки - PullRequest
1 голос
/ 19 июня 2011

Является ли компоновщик общим для объектных кодов различных языков для данного ISA? или для разных языков нужен отдельный компоновщик для базовой платформы? Я понимаю, что компоновщик является системным программным обеспечением и должен быть общим для всех?

1 Ответ

0 голосов
/ 06 мая 2012

Для начала нужно понять, что компоновщик связывает объектный код.Этот объектный код зависит от компьютера (и обычно от операционной системы).Существует несколько различных стандартных форматов объектного кода.Компоновщик не может связывать объектный код с разных машинных архитектур.И даже если бы он мог это сделать, он не был бы выполнен.При этом почти всегда можно связать объектный код с разных языков, если компиляторы работают на одной и той же машине, а иногда даже в одной и той же операционной системе.Например, если вы создаете программу на C и хотите связать с ней объектный файл Pascal, это обычно будет работать.Самый популярный формат объектного кода называется COFF object code .Код COFF является практически универсально принятым стандартным форматом для объектного кода.Не имеет значения, какой языковой компилятор вы используете для генерации кода (если он написан на той же архитектуре машины), большинство компоновщиков поймут, что могут связывать файлы COFF.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...