c common.md 1.4 KB

Стадии компиляции
- препроцессор - компилятор - ассемблер - компоновщик ```bash $ cc main.c # создаст исполняемый файл main.out $ cc -v main.c # тоже, но с выводом информации $ gcc -E main.c # остановиться после препроцессора $ gcc -S main.c # остановиться после ассемблера на втормо этапе (main.s) $ gcc -c main.c # остановиться после ассемблирования перед компановкой, получится объектный модуль $ objdump -x main.o # вывести объектный файл в читаемом виде $ nm mian.o # менеджер имен $ gcc -o main main.c # получить исполняемый файл с именем main ``` Создадим файл `func.c` ```c #include int my_func() { printf("My function\r\n"); } ``` И в main.c добавим вызов функции `my_func()` ```bash $ gcc -o main main.c func.c # соберет исполняемый файл main ``` Но правильно будет модули компилировать отдельно и собрать из полученных объектный файлов ```bash $ gcc -c main.c $ gcc -c func.c $ gcc -o main main.o func.o ```
make