Первая программа
Первая программа на си под linux
Академическое программирование на си на unix-like операционных системах достаточно тривиально. В курсе вы не будете делать сложных программ, которые будут зависеть от особенностей операционной системы и среды программирования, они не будут требовать наличия файлов сборки. Программа на си пишется в любом удобном для вас текстовом редакторе. Пример простой программы:
#include <stdio.h> int main(int argc, char* argv[]) { printf("Hello, World!"); return 0; }
Сохраните файл в удобном месте. Пусть он называется hello.c. Для компиляции в терминале вызовите команду cc или gcc и передайте в качестве аргумента имя вашего .c файла и имя выходного файла. Например, если вы находитесь в той же папке, что и ваш файл
сc hello.c –o hello
В результате вы получите исполняемый файл hello, который можно вызвать по имени.
./hello
Часто вновь созданный файл не имеет прав на исполнение, и вы получаете ошибку вроде
access denied
Для исправления ошибки необходимо назначить себе права на исполнение файла
chmod 760 hello
либо
chmod u+x hello
После чего файл можно будет исполнять.
В том случае, если у вас имеется несколько файлов, нужно передать компилятору имена всех си файлов, которые включены в проект. Например, пусть у вас есть три файла
simple.h
#ifndef _SIMPLE_H_ #define _SIMPLE_H_ #include <stdio.h> #include <conio.h> void doSomething(); #endif
simple.c
#include "simple.h" void doSomething() { printf("It works!"); _getch(); }
и main.c
#include "simple.h" int main(int argc, char* argv[]) { doSomething(); return 0; }
Вызов будет иметь вид
cc main.c simple.c -o hello
Сборку можно осуществлять с помощью make файла. Полное изучение возможностей make файлов не входит в нашу компетенцию.
Создайте файл с именем makefile и содержимым
hello: hello.c simple.c gcc hello.c simple.c –o hello clean: rm -rf hello
Здесь отступ – это единичная табуляция! Для компиляции и сборки вызовите команду make. make подхватит makefile и выполнит команду
gcc hello.c simple.c -o hello
Для удаления скомпилированного файла вызовите make clean.
