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

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


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

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

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

Процесс преобразования исходных файлов в исполняемый называется компиляцией. Если программа состоит из одного исходного файла 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

Ссылки