История изменений
Исправление wandrien, (текущая версия) :
Почему в таком виде не надо указывать заголовочный файл?
Заголовочный файл при линковке не нужен.
Заголовочный файл это просто кусок кода на Си, который подставляется в компилируемый исходник.
Допустим, у тебя в заголовочном файле написано extern void foo(int a);
. Компилятор запоминает, что foo
— это функция, которая находится где-то снаружи, и идёт дальше.
Когда компилятор создаёт объектный файл, у тебя там в машинном коде будет, например, вызов к внешней функции foo
. Теперь задача линковщика – соединить объектные файлы. Если на этапе линковки не будет найдено, откуда взять foo
, то будет ошибка линковки.
Исходная версия wandrien, :
Почему в таком виде не надо указывать заголовочный файл?
Заголовочный файл при линковке не нужен.
Заголовочный файл это просто кусок кода на Си, который компилятор берёт из другого файла.
Допустим, у тебя в заголовочном файле написано extern void foo(int a);
. Компилятор запоминает, что foo
— это функция, которая находится где-то снаружи, и идёт дальше.
Когда компилятор создаёт объектный файл, у тебя там в машинном коде будет, например, вызов к внешней функции foo
. Теперь задача линковщика – соединить объектные файлы. Если на этапе линковки не будет найдено, откуда взять foo
, то будет ошибка линковки.