diff options
Diffstat (limited to 'content/digarden/pages/20210519112044-компилируемые_языки_программирования.org')
-rw-r--r-- | content/digarden/pages/20210519112044-компилируемые_языки_программирования.org | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/content/digarden/pages/20210519112044-компилируемые_языки_программирования.org b/content/digarden/pages/20210519112044-компилируемые_языки_программирования.org new file mode 100644 index 0000000..e7d77d9 --- /dev/null +++ b/content/digarden/pages/20210519112044-компилируемые_языки_программирования.org @@ -0,0 +1,34 @@ +:PROPERTIES: +:ID: 5346da1a-6f67-4919-ac90-fd1a0b4c68f3 +:END: +#+title: Компилируемые языки программирования +* Компилируемые языки программирования +[[https://youtube.com/watch?v=sIlPn7JD1Ug][GNU Toolchain]] +[[https://youtube.com/watch?v=OnEF1MexJlI][GCC and Makefiles]] + +Этапы компиляции [[id:40c44577-6cd7-4eac-aac7-288a0537b7e9][языка Си]]: +1. Препроцессор + - Макросы в компайл тайме + - Расширение .i + - gcc -E +2. Компиляция + - Переводит язык Си в язык Ассемблера + - Расширение .s + - gcc -S +3. Сборка (Assembly) + - Переводит язык Ассемблера в нечитаемый для человека байткод + - Называются объектными файлами + - В них существуют "дырки" (holes). + + Скажем при вызове printf скомпилированный объектный файл ещё не будет + знать откуда printf брать. + - Расширение .0 + - gcc -c +4. Линковка + - Соединяет объектные .o файлы воедино + - Заполняя в них "дырки" (holes) + - Выдаёт на выходе исполняемый бинарный файл + - gcc (без флагов) + +Ресурсы: +- [[https://godbolt.org][Godbolt]] :: сайт с выводом компиляторов C в ассемблер |