Язык Си в примерах/Компиляция программ

Язык Си в примерах


  1. Компиляция программ
  2. Простейшая программа «Hello World»
  3. Учимся складывать
  4. Максимум
  5. Таблица умножения
  6. ASCII-коды символов
  7. Верхний регистр
  8. Скобочки
  9. Факториал
  10. Степень числа
  11. Треугольник Паскаля
  12. Корень уравнения
  13. Система счисления
  14. Сортировка
  15. Библиотека complex
  16. Сортировка на основе qsort
  17. RPN-калькулятор
  18. RPN-калькулятор на Bison
  19. Простая грамматика
  20. Задача «Расчёт сопротивления схемы»
  21. Простая реализация конечного автомата
  22. Использование аргументов командной строки
  23. Чтение и печать без использования stdio
  24. Декодирование звукозаписи в формате ADX
  25. Другие примеры

Программа на языке Си состоит из одного или несколько текстовых файлов, которые называются исходными.

Компьютер не способен исполнить исходные текстовые файлы — их необходимо перевести на машинный язык, то есть создать исполняемый файл, содержащий в себе инструкции процессора на машинном языке, который уже будет пригоден для запуска на компьютере.

Процесс преобразования исходных файлов в исполняемый называется компиляцией. Если программа состоит из одного исходного файла hello.c, то для его компиляции компилятором GNU С достаточно выполнить команду (здесь и далее $ — подсказка интерпретатора командной строки):

$ gcc hello.c

Поскольку мы явно не указали имени для скомпилированного файла, по умолчанию он будет называться a.out. Чтобы указать имя явно, используется опция -o ("имя выходного файла"):

$ gcc hello.c -o hello

В результате будет сгенерирован файл hello. Этот файл является исполняемым и его можно запускать (execute) при помощи команды:

$ ./hello

Символов ./ перед hello говорят интерпретатору командной строки: "исполняемый файл hello следует искать в текущей директории".

Строчка

$ gcc xxx.c yyy.c -o zzz -I./common -I.. -lm

соответствует команде: "скомпилировать файлы xxx.c и yyy.c исполняемый файл с именем zzz; заголовочные файлы находятся в директориях ./common и ..; следует также подключить библиотеку libm"

Библиотека libm (подключаемая с помощью опции -lm) содержит откомпилированные математические функции, которые объявляются в заголовочном файле math.h. Если вы используете функции из этой библиотеки (такие как log, sin, cos, exp), то не забывайте подключать её при компиляции.

Подробную информацию об опциях компилятора gcc можно получить, если набрать

$ man gcc

или

$ info gcc

Ссылки править