Skip to content

Home Программирование Компоновка
Компоновка

В предыдущей статье говорилось о том, что компилятор переводит исходный код программы в исполняемый. Но это не всегда так.

В достаточно объемных программах исходный код обычно разделяется для удобства на несколько частей, которые компилируются отдельно, а затем соединяются воедино. Каждый такой "кусок" содержит объектный код и называется объектным модулем.

Объектные модули записываются в объектные файлы, имеющие расширение .о. В результате объединения объектных файлов могут получаться исполняемые файлы (обычные запускаемые бинарники), а также библиотеки.

Для объединения объектных файлов служит компоновщик (линковщик), а сам процесс называют компоновкой или линковкой. В Linux имеется компоновщик GNU Id, входящий в состав пакета GNU binutils.

Иногда компоновщик называют также загрузчиком.

Ручная компоновка объектных файлов— довольно неприятный процесс, требующий передачи программе Id большого числа параметров, зависящих от многих факторов. К счастью, компиляторы из коллекции GCC сами вызывают линковщик с нужными параметрами, когда это необходимо.

Программист может самостоятельно передавать компоновщику дополнительные параметры через компилятор. 

Теперь вернемся к нашему примеру . В предыдущем разделе компилятор "молча" вызвал компоновщик, в результате чего получился исполняемый файл. Чтобы отказаться от автоматической компоновки, нужно передать компилятору опцию -с:

$ gcc -с myclock.c

Если компилятор не нашел ошибок, то в текущем каталоге должен появиться объектный файл myclock.o. Других объектных файлов у нас нет, поэтому будем компоновать только его. Это делается очень просто:

$ gcc -о myclock myclock.o

В Unix существуют различные форматы объектных файлов. Наиболее популярные среди них— a.out (Assembler OUTput) и COFF (Common Object File Format). В Linux чаще всего встречается открытый формат объектных и исполняемых файлов ELF (Executable and Linkable Format).

Комментарии (0)

RSS feed Comments

Написать комментарий

smaller | bigger

busy
 

Регистрация




Top