В чем разница между объектным файлом и файлом a.out в linux или unix?
Я только что начал изучать программирование на Linux с помощью C, я обнаружил, что при компиляции файла исходного кода, то есть xyz.c с помощью команды gcc xyz.c, мы получаем исполняемый файл a.out, который имеет эквивалентный шестнадцатеричный код и который понятен процессору.
вот мои сомнения
1. Что означают-Е, - С и-с
2. при попытке компиляции непосредственно с помощью команды gcc xyz.c создается исполняемый файл с именем a.out, который имеет эквивалентный шестнадцатеричный код, так в чем же разница между файлом расширения a .out и.o?
3. каково точное значение-o в Linux commnand
Что я уже пробовал:
но когда я попробовал эту процедуру, чтобы найти и наблюдать, что происходит в процедуре компиляции
Шаг 1: gcc-E xyz. c-o xyz. i
он создает файл расширения .i, который имеет расширенный исходный код.
Шаг 2: gcc-S xyz. i-o xyz. s
он создает файл расширения .s, который имеет эквивалентный ассемблерный код.
Шаг 3: gcc -c xyz. c-o xyz. o
он создает объектный файл, который имеет эквивалентный шестнадцатеричный код, понятный процессору
Tomas Takac
Вы читали документацию?
https://gcc.gnu.org/onlinedocs/gcc-6.3.0/gcc/Overall-Options.html#Overall-Options
CPallini
Точно, мой виртуальный 5.