Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[34.229.172.86] |
|
Сообщ.
#1
,
|
|
|
Нужна ли линковка для одного файла и почему?
Например, для подобного: int main() { return 0; } |
Сообщ.
#2
,
|
|
|
Нужна конечно.
Надо библиотеку прилинковать. К тому же функция main здесь является точкой входа не всей программы, а только описанной пользователем части. До неё выполняется настройка на версию ОС и аппаратное окружение, чтение командной строки, переменных окружения, и много ещё чего. После неё закрываются файлы, освобождается память, то есть тоже много чего делается. Фактически имеется некая стандартная часть программы, из которой твоя main вызывается как обычная, рядовая функция. Почему, кстати, так жёстко и ограничен заголовок main. |
Сообщ.
#3
,
|
|
|
Нужна. Компилятор лишь соорудит суть кода, а компоновщик (по настройкам) узнает как собрать исполняемый модуль. Даже в здешнем примере - может быть вариант создания EXE или COM-файла.
|
Сообщ.
#4
,
|
|
|
Более того, линкер тоже может вмешаться в результат, смотри Linker-time optimization
|