Итак, вы создали свою первую программу, поздравляем! Но теперь у вас есть программа, на которую вы потратили немало времени, и вы не знаете, как заставить ее работать. Но почему я не могу просто "./" мой файл и выполнить его как обычно? Что ж, с программами на C вы фактически собираетесь компилировать его.

Подождите ... компиляция, что это вообще значит?

Допустим, у вас есть программа на языке программирования. Для этого объяснения мы будем использовать язык «C.» Итак, на самом деле вы написали исходный код. Когда вы запускаете команду «gcc», которая является командой bash для компиляции исходного кода, она фактически берет ваш файл «.c» и пропускает его через несколько процессов.

Во-первых, после выполнения ваш исходный код будет предварительно обработан и отправлен в компилятор. Это этап, на котором будут удалены любые комментарии, которые вы могли добавить к своей программе. Если вы хотите увидеть, как ваш исходный код обрабатывается только до стадии препроцессора, вы можете использовать «gcc -E main.c» в командной строке.

Исходный код компилятора больше не является исходным кодом, а является кодом сборки. Это изменит ваш файл (в этом примере мы используем «main.c») на «main.s.» Если вы хотите увидеть, как ваш исходный код компилируется до состояния сборки, вы можете запустить «gcc -S main.c› main.s », который позволит вам просмотреть выходной файл« main.s »в состояние кода сборки.

Хорошо, теперь я могу запустить свою программу? Еще нет.

Оттуда ваша программа, которую вы написали, теперь будет проходить через ассемблер, который снова преобразует ваш код в объектный код, поэтому ваш скомпилированный код до этого момента будет заканчиваться на «.o».

Если вы хотите увидеть, как это повлияло на ваш код до того, как он достигнет своей последней стадии (хотя это не рекомендуется, поскольку вы не сможете интерпретировать его, поскольку он преобразует ваш код в машинный язык), вы можете просто запустить «gcc -c main. c ›main.o», где опция «-c» предотвратит попадание вашего кода на финальную стадию «связывания», которую мы сейчас обсудим.

Теперь мы, наконец, подошли к последнему этапу компиляции, который называется «компоновкой». Здесь машина свяжет ваш объектный код со своей библиотекой (в данном примере наша библиотека - ‹stdio.h›) и, наконец, завершит ее «компиляцию».

Итак, как узнать, работает ли компилятор? Что ж, если вы не укажете имя того, куда вы хотите выводить скомпилированный исходный код (например, с помощью команды «gcc file.c -o compiledfile»), по умолчанию (в Linux) он будет выводить в «a. из."

И что теперь? Итак, вы, наконец, можете запускать свою программу! Поздравляем и удачного кодирования!