В чем разница между компоновщиком и make-файлом? - PullRequest
2 голосов
/ 19 июня 2010

компоновщик получает obj и lib для создания exe или других библиотек.Но так же как и make-файл (но он может начинаться с исходных текстов).в чем разница между ними?

Ответы [ 4 ]

5 голосов
/ 19 июня 2010

Нет, Makefile - нет.

Makefile - это, по сути, скрипт, сообщающий программе make, какие файлы отправлять каким программам в составе файла сборки.

Итак, Makefile может вызывать компилятор, компоновщик и т. Д. С соответствующими исходными файлами / объектными файлами, но на самом деле он не выполняет саму работу.

Я думаю, что вы пропустили всю концепцию Makefile, поэтому я предлагаю вам сделать дальнейшее чтение .

2 голосов
/ 19 июня 2010

A makefile - это просто некоторый набор правил, который определяет, что нужно скомпилировать и от чего зависит процесс компиляции.Таким образом, программное обеспечение make может автоматизировать процесс.

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

2 голосов
/ 19 июня 2010

Компоновщик и make-файл практически не имеют ничего общего. Makefile - это набор инструкций, используемых make. Это могут быть инструкции по созданию программы, установке некоторых файлов или тому, что вы хотите make. Линкер - это программа, которая принимает объектные файлы в качестве входных данных и объединяет их в выходной исполняемый файл (или разделяемую библиотеку).

1 голос
/ 19 июня 2010

Make использует make-файл для оценки набора правил относительно того, вызывать ли компилятор для исходного файла (скорее всего, из-за его изменения) и в конечном итоге вызывать компоновщик для создания окончательного объектного файла.Подробнее о марке можно прочитать здесь: http://www.gnu.org/software/make/

...