LINUX.ORG.RU

История изменений

Исправление wandrien, (текущая версия) :

Почему в таком виде не надо указывать заголовочный файл?

Заголовочный файл при линковке не нужен.

Заголовочный файл это просто кусок кода на Си, который подставляется в компилируемый исходник.

Допустим, у тебя в заголовочном файле написано extern void foo(int a);. Компилятор запоминает, что foo — это функция, которая находится где-то снаружи, и идёт дальше.

Когда компилятор создаёт объектный файл, у тебя там в машинном коде будет, например, вызов к внешней функции foo. Теперь задача линковщика – соединить объектные файлы. Если на этапе линковки не будет найдено, откуда взять foo, то будет ошибка линковки.

Исходная версия wandrien, :

Почему в таком виде не надо указывать заголовочный файл?

Заголовочный файл при линковке не нужен.

Заголовочный файл это просто кусок кода на Си, который компилятор берёт из другого файла.

Допустим, у тебя в заголовочном файле написано extern void foo(int a);. Компилятор запоминает, что foo — это функция, которая находится где-то снаружи, и идёт дальше.

Когда компилятор создаёт объектный файл, у тебя там в машинном коде будет, например, вызов к внешней функции foo. Теперь задача линковщика – соединить объектные файлы. Если на этапе линковки не будет найдено, откуда взять foo, то будет ошибка линковки.