Пишем сайт на линуксе

Обновлено: 04.07.2024

Все действия в операционной системе выполняются с помощью программ, поэтому многим новичкам интересно не только использовать чужие программы, а писать свои. Многие хотят внести свой вклад в кодовую базу OpenSource.

Это обзорная статья про программирование под Linux. Мы рассмотрим какие языки используются чаще всего, рассмотрим основные понятия, а также возможности, разберем как написать простейшую программу на одном из самых популярных языков программирования, как ее вручную собрать и запустить.

1. На чем пишут программы?

Исторически сложилось так, что ядро Unix было написано на языке Си. Даже более того, этот язык был создан для написания ядра Unix. Поскольку ядро Linux было основано на ядре Minix (версии Unix), то оно тоже было написано на Си. Поэтому можно сказать, что основной язык программирования для Linux это Си и С++. Такая тенденция сохранялась на протяжении долгого времени.

Мы не будем рассматривать основы Си в этой статье. Си - сложный язык и вам понадобится прочитать как минимум одну книгу и много практиковаться чтобы его освоить. Мы рассмотрим как писать программы на Си в Linux, как их собирать и запускать.

2. Библиотеки

Естественно, что если вам необходимо вывести строку или изображение на экран, то вы не будете напрямую обращаться к видеокарте. Вы просто вызовете несколько функций, которые уже реализованы в системе и передадите им данные, которые нужно вывести на экран. Такие функции размещаются в библиотеках. Фактически, библиотеки - это наборы функций, которые используются другими программами. В них находится такой же код, как и в других программах, разница лишь в том, там необязательно присутствие функции инициализации.

Библиотеки делятся на два типа:

  • Статические - они связываются с программой на этапе компиляции, они связываются и после этого все функции библиотеки доступны в программе как родные. Такие библиотеки имеют расширение .a;
  • Динамические - такие библиотеки встречаются намного чаще, они загружены в оперативную память, и связываются с программной динамически. Когда программе нужна какая-либо библиотека, она просто вызывает ее по известному адресу в оперативной памяти. Это позволяет экономить память. Расширение этих библиотек - .so, которое походит от Shared Object.

Таким образом, для любой программы на Си нужно подключать библиотеки, и все программы используют какие-либо библиотеки. Также важно заметить, на каком языке бы вы не надумали писать, в конечном итоге все будет сведено к системным библиотекам Си. Например, вы пишите программу на Python, используете стандартные возможности этого языка, а сам интерпретатор уже является программой на Си/С++, которая использует системные библиотеки для доступа к основным возможностям. Поэтому важно понимать как работают программы на Си. Конечно, есть языки, вроде Go, которые сразу переводятся на ассемблер, но там используются принципы те же, что и здесь. К тому же системное программирование linux, в основном, это Си или С++.

3. Процесс сборки программы

Перед тем как мы перейдем к практике и создадим свою первую программу, нужно разобрать как происходит процесс сборки, из каких этапов он состоит.

Каждая серьезная программа состоит из множества файлов, это файлы исходников с расширением .c и заголовочные файлы с расширением .h. Такие заголовочные файлы содержат функции, которые импортируются в программу из библиотек или других файлов .с. Перед тем. как компилятор сможет собрать программу и подготовить ее к работе, ему нужно проверить действительно ли все функции реализованы, доступны ли все статические библиотеки и собрать ее в один файл. Поэтому, первым делом выполняется препроцессор, который собирает исходный файл, выполняются такие инструкции, как include для включения кода заголовочных файлов.

На следующем этапе к работе приступает компилятор, он выполняет все необходимые действия над кодом, разбирает синтаксические конструкции языка, переменные и преобразовывает все это в промежуточный код, а затем в код машинных команд, который мы можем потом посмотреть на языке ассемблера. Программа на этом этапе называется объектный модуль и она еще не готова к выполнению.

Далее к работе приступает компоновщик. Его задача связать объектный модуль со статическими библиотеками и другими объектными модулями. Для каждого исходного файла создается отдельный объектный модуль. Только теперь программа может быть запущена.

А теперь, давайте рассмотрим весь єтот процесс на практике с использованием компилятора GCC.

4. Как собрать программу

Для сборки программ в Linux используется два типа компиляторов, это Gcc и Clang. Пока что GCC более распространен, поэтому рассматривать мы будем именно его. Обычно, программа уже установлена в вашей системе, если же нет, вы можете выполнить для установки в Ubuntu:

sudo apt install gcc

Перед тем как мы перейдем к написанию и сборке программы, давайте рассмотрим синтаксис и опции компилятора:

$ gcc опции исходный_файл_1.с -o готовый_файл

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

  • -o - записать результат в файл для вывода;
  • -c - создать объектный файл;
  • -x - указать тип файла;
  • -l - загрузить статическую библиотеку.

Собственно, это все самое основное, что нам понадобится. Теперь создадим нашу первую программу. Она будет выводить строку текста на экран и чтобы было интереснее, считать квадратный корень из числа 9. Вот исходный код:

int main() printf("losst.ru\n");
printf("Корень: %f\n", sqrt(9));
return 0;
>

Я специально добавил функцию корня чтобы показать как работать с библиотеками. Сначала нужно собрать объектный файл. Перейдите в папку с исходниками и выполните:

gcc -c program.c -o program.o


Это этап компиляции, если в программе нет ошибок, то он пройдет успешно. Если исходных файлов несколько, то такая команда выполняется для каждого из них. Далее выполняем линковку:

gcc -lm program.o -o program


Обратите внимание на опцию -l, с помощью нее мы указываем какие библиотеки нужно подключить, например, здесь мы подключаем библиотеку математических функций, иначе компоновщик просто не найдет где есть та или иная функция. Только после этого можно запустить программу на выполнение:


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


Это две библиотеки загрузчика, стандартная libc и libm, которую мы подключили.

5. Автоматизация сборки

Когда мы рассматриваем программирование под Linux невозможно не отметить систему автоматизации сборки программ. Дело в том, что когда исходных файлов программы много, вы не будете вручную вводить команды для их компиляции. Можно записать их один раз, а затем использовать везде. Для этого существует утилита make и файлы Makefile. Этот файл состоит из целей и имеет такой синтаксис:

цель: зависимости
<Tab> команда

В качестве зависимости цели может быть файл или другая цель, основная цель - all, а команда выполняет необходимые действия по сборке. Например, для нашей программы Makefile может выглядеть вот так:

program: program.o
gcc -lm program.o -o program

program.o: program.c
gcc -c program.c -o program.o

Затем вам достаточно выполнить команду make для запуска компиляции, только не забудьте удалить предыдущие временные файлы и собранную программу:


Программа снова готова и вы можете ее запустить.

Выводы

Создание программ Linux очень интересно и увлекательно. Вы сами убедитесь в этом, когда немного освоитесь в этом деле. Сложно охватить все в такой небольшой статье, но мы рассмотрели самые основы и они должны дать вам базу. В этой статье мы рассмотрели основы программирования в linux, если у вас остались вопросы, спрашивайте в комментариях!

Курс программирования на Си под Linux:

Favorite

Добавить в избранное

Главное меню » Операционная система Linux » Размещение веб-сайтов в GNU/Linux. Учебник для начинающих

(2 оценок, среднее: 3,00 из 5)

Размещение веб-сайтов в GNU/Linux. Учебник для начинающих

Х отите разместить свой собственный веб-сайт на своем хостинге? Есть запасной компьютер, пусть даже очень старый, которые вы можете использовать? Эта статья покажет вам, как разместить веб-сайт на операционной системе Linux с помощью веб-сервера Nginx!

Теперь, три момента, которые мы собираемся дать:

  • Эта статья будет идти почти полностью с помощью командной строки. Мы лично считаем, это намного легче, и меньше займет времени, чтобы сделать это в терминале, плюс это хорошая практика для тех, кто хочет работать с удаленными серверами в будущем при создании сайта в Ростове и размещения его за пределами площадки.
  • Это руководство не будет защищать, устанавливать SSL сертификаты, использовать расширенные HTML/CSS/Javascript, ни дополнительные работы с DNS. Здесь просто собираемся показать вам, как поставить сайт на сервер, чтобы далее начать разрабатывать его!
  • Это руководство служит в качестве теста. Если есть хороший прием, мы рассмотрим более сложные темы, касающиеся работы сервера, веб-хостинга, сервера электронной почты и т.д. Если вы как читатель заинтересованы в более высоком уровне, чем «домашний пользователь», читайте наши статьи об серверах и их настроек!

Эта статья предполагает, что вы работаете в операционной системе Debian, Ubuntu, или в одной из их производных; так как они являются наиболее распространенным системами основанными на Linux и операционная система Debian является одной из наиболее популярной серверной операционной системой из за ее стабильности.

Размещение веб-сайтов в GNU/Linux. Учебник для начинающих

Хостинг для сайта: процесс

Примечание: Первое, что мы должны сделать, это убедиться, что наша система имеет самые последние обновления:

Если у вас есть какие-либо обновления, согласитесь с ними и продолжите далее.

Далее, мы будем устанавливать веб-сервер Nginx:

Установка Nginx занимает всего до несколько минут, это очень мало. Как только это будет сделано, вы должны убедиться в работоспособности Nginx:

или если не используется Systemd:

Вы должны получить некоторый текст, рассказывающий вам что-то вроде этого:

Тестирование Nginx

Хороший способ проверить Nginx и подтвердить, что он работает, это посетить тестовую страницу! (Это верно, с момента установки Nginx, вы показываете тестовую страницу в Интернете!)

Во-первых, нам нужно выяснить, какой наш IP-адрес. Если вы подключены к Интернету через Ethernet, вы можете попробовать выполнить эту команду:

Теперь, когда у нас есть IP-адрес, введите его в веб-браузер с помощью другого устройства, а не с той машины, на которой вы работаете на Nginx:

Вы должны увидеть страницу по умолчанию nginx welcome page!

Каталоги и дополнительные советы по настройке

Последняя часть этой очень простой учебник, знать, важные каталоги Nginx.

Это основные каталоги на хостинге в Nginx.

Доменные имена, и заключительные мысли

Имея установленный Nginx, который работает нормально, вам нужно будет доменное имя!

Вы можете зарегистрировать доменное имя для использования на вашем сайте! Вы должны будете понять основное, как указать доменное имя для вашего использования с помощью DNS.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Скорее всего какие-то части этой статьи уже знакомы многим хаброжителям, но в связи с покупкой нового рабочего ноутбука я решил собрать все крупинки воедино и организовать удобное средство для разработки. Мне часто приходится работать со множеством маленьких проектов, с разными версиями PHP, часто переводить старые проекты на новые версии. В далёком прошлом, когда я был пользователем Windows то использовал OpenServer. Но с переходом на Linux мне нехватало той простоты создания хостов и переключений версий которые были в нём. Поэтому пришлось сделать еще более удобное решение на Linux =)

  1. Использовать текущий на момент написания статьи софт
  2. Чтоб разграничить локальные домены, будем использовать специальный домен .loc
  3. Переключения версий PHP реализуем через поддомен c помощью fast-cgi
  4. Автоматическое создание хоста с помощью vhost_alias и dnsmasq

будет запущен тот же файл но уже с версией PHP 7.2.7

Другие версии доставляются аналогичным описанным ниже способом.

Для создания еще одного сайта просто создаем в /var/www/ папку имеющую окончание .loc, внутри которой должна быть папка public_html являющаяся корнем сайта

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

Всё это я проверну на LinuxMint19, он на базе Ubuntu18.04, так что с ним все будет аналогично.

Для начала поставим необходимые пакеты


Postfix ставим в качестве плюшки, как простое решение(в мастере установки, всё по умолчанию выбираем) для отправки почты с локальной машины.

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

Скопируем папку созданную апачем в домашний каталог, создадим на ее месте ссылку, не забыв поменять пользователя на себя и обменяться группами с апачем.


Создадим папку в которой будем собирать исходники PHP для разных версий


Также нам понадобится папки для CGI скриптов


И runtime папка для этих же скриптов, с правами

И так как каталог у нас находится в оперативной памяти, добавим его создание при старте системы, для этого добавим в /etc/tmpfiles.d/fcgid.conf


У меня dnsmasq-base идет с коробки, если нет то его всегда можно доставить.

Добавим правило в его конфигурацию. Найти файл конфигурации dnsmasq.conf можно так

Либо если он как и у меня является частью NetworkManager то создать новый файл конфигурации в /etc/NetworkManager/dnsmasq.d/local.conf
Добавим в него строчку для перенаправление нашего локального домена на локальную машину.


Также нужно включить необходимые модули апача


Предварительная подготовка завершена, приступаем к сборке различных локальных версий PHP. Для каждой версии PHP проделываем следующие 4 шага. На примере 5.6.36

1. Скачиваем исходники нужной версии и распаковываем их


2. Cобираем из исходников нужную версию PHP, и помещаем ее в /opt/php-5.6.36


3. Создаем CGI для обработки этой версии в /var/www/cgi-bin/php-5.6.36.fcgi


4. Делаем файл исполняемым


5. Добавляем экшен для обработки каждой версии в /etc/apache2/mods-available/fcgid.conf


6. Добавляем правило для обработки каждой версии в /etc/apache2/sites-available/000-default.conf


Ну вот и всё. Осталось только перезапустить apache и dnsmasq и пользоваться

Komodo Edit HTML редактор

Ищете бесплатный редактор HTML для Linux ? Хотя существует множество недорогих редакторов HTML, которые предлагают больше возможностей и гибкости, эти бесплатные настольные инструменты — все, что вам нужно для проектирования и редактирования веб-страниц HTML и XML в автономном режиме.

Эти приложения доступны для всех операционных систем на основе Unix , и многие из них также доступны для Windows .

Лучший редактор HTML и XML: Komodo Edit

Komodo Edit HTML редактор

Автоматическое завершение кода и цветовая кодировка.

Предварительный просмотр в приложении.

Нет WYSIWYG редактора.

Нет проверки ссылок.

Komodo Edit — это лучший бесплатный редактор XML, включающий в себя множество замечательных функций для разработки HTML и CSS . Вы также можете получить расширения для добавления поддержки языков или других полезных функций, таких как специальные символы HTML . Komodo Edit поставляется в комплекте с Komodo IDE , которая является платной программой, но редактор может быть загружен сам по себе бесплатно.

Лучший интерфейс редактора HTML: Aptana Studio

Аптана Студио 3

Плагины для многоязычной поддержки.

Работает на большинстве операционных систем.

Нет последних обновлений.

Медленнее, чем другие редакторы HTML.

Aptana Studio предлагает интересный взгляд на разработку веб-страниц. В дополнение к редактированию HTML, Aptana фокусируется на JavaScript и других элементах, которые позволяют создавать многофункциональные интернет-приложения. Одна отличная особенность — это контурное представление, которое действительно упрощает визуализацию Direct Object Model (DOM), делая разработку CSS и JavaScript намного более управляемой.

Самый настраиваемый редактор HTML: NetBeans

HTML-редактор NetBeans

Доступно для начинающих программистов.

Тяжелые системные ресурсы.

Простой пользовательский интерфейс.

IDE NetBeans — это среда IDE Java, которая может помочь в создании надежных веб-приложений. Как и большинство IDE , у него крутая кривая обучения, потому что он не работает так же, как веб-редакторы. Приятной особенностью является инструмент контроля версий, который очень полезен для людей, работающих в больших средах разработки.

Лучшая интеграция в Photoshop: Bluefish

Bluefish HTML-редактор

Быстро составьте сложный код.

Простая интеграция с Photoshop.

Опции инструмента могут быть ошеломляющими.

Bluefish — полнофункциональный веб-редактор для Linux, Mac и Windows. К его функциям относятся проверка орфографии с учетом кода, фрагменты, управление проектами, автоматическое сохранение и автозаполнение для множества разных языков (HTML, PHP, CSS и т. Д.). Bluefish — это, прежде всего, редактор кода, а не веб-редактор, а это означает, что он имеет большую гибкость для веб-разработчиков, пишущих не только на HTML.

Лучшее для кроссплатформенной разработки: Eclipse

Eclipse IDE HTML редактор

Мощные возможности преломления кода.

Полная интеграция со средствами управления исходным кодом.

Интеграция с Git может быть лучше.

Ограниченная поддержка C ++.

Eclipse — это сложная среда разработки, которая идеально подходит для людей, которые много пишут на разных платформах и на разных языках. Если вы создаете сложные веб-приложения, в Eclipse есть множество функций, которые помогут упростить создание ваших приложений. Есть плагины Java, JavaScript и PHP, а также плагин для мобильных разработчиков.

Лучший редактор HTML со встроенным браузером: SeaMonkey

Интернет-приложение SeaMonkey

Широкие возможности поиска.

Надежная поддержка плагинов.

Медленно, чтобы начать.

SeaMonkey — это комплексный пакет разработки веб-приложений Mozilla. Он включает в себя клиент электронной почты и группы новостей, клиент IRC-чата и редактор веб-страниц Composer. Одной из приятных особенностей использования SeaMonkey является то, что у вас уже есть встроенный браузер, поэтому тестирование очень просто. Кроме того, у него есть бесплатный редактор WYSIWYG со встроенным FTP для публикации ваших веб-страниц.

Лучший редактор WYSIWYG: Nvu

Nvu HTML редактор

Цветовое редактирование XHTML.

Идеально для начинающих программистов.

Нет обновлений в течение длительного времени.

Если вы предпочитаете простые текстовые редакторы редакторам WYSIWYG, то Nvu может не подойти вам. В противном случае, это идеальный легкий инструмент для веб-редактирования. В Nvu есть удобный менеджер сайтов, который позволяет просматривать все страницы, которые вы сейчас создаете. Другие функции включают поддержку XML, расширенную поддержку CSS и встроенный валидатор HTML .

Редактор HTML с большинством функций: GNU Emacs

Emacs HTML редактор

Поддерживает большинство основных языков программирования.

Полезное сообщество пользователей.

Сначала может быть пугающим.

Знание программирования на Лисп настоятельно рекомендуется.

Emacs поставляется с некоторыми дистрибутивами Linux, поэтому вам не нужно загружать дополнительное программное обеспечение, чтобы начать редактирование веб-страниц. Emacs предлагает больше опций, чем многие другие редакторы в этом списке, но вам может оказаться сложнее его использовать. Известные функции включают редактирование HTML с цветовой кодировкой, поддержку XML, поддержку сценариев, расширенную поддержку CSS и встроенный валидатор.

Все действия в операционной системе выполняются с помощью программ, поэтому многим новичкам интересно не только использовать чужие программы, а писать свои. Многие хотят внести свой вклад в кодовую базу OpenSource.

Это обзорная статья про программирование под Linux. Мы рассмотрим какие языки используются чаще всего, рассмотрим основные понятия, а также возможности, разберем как написать простейшую программу на одном из самых популярных языков программирования, как ее вручную собрать и запустить.

1. На чем пишут программы?

Исторически сложилось так, что ядро Unix было написано на языке Си. Даже более того, этот язык был создан для написания ядра Unix. Поскольку ядро Linux было основано на ядре Minix (версии Unix), то оно тоже было написано на Си. Поэтому можно сказать, что основной язык программирования для Linux это Си и С++. Такая тенденция сохранялась на протяжении долгого времени.

Мы не будем рассматривать основы Си в этой статье. Си - сложный язык и вам понадобится прочитать как минимум одну книгу и много практиковаться чтобы его освоить. Мы рассмотрим как писать программы на Си в Linux, как их собирать и запускать.

2. Библиотеки

Естественно, что если вам необходимо вывести строку или изображение на экран, то вы не будете напрямую обращаться к видеокарте. Вы просто вызовете несколько функций, которые уже реализованы в системе и передадите им данные, которые нужно вывести на экран. Такие функции размещаются в библиотеках. Фактически, библиотеки - это наборы функций, которые используются другими программами. В них находится такой же код, как и в других программах, разница лишь в том, там необязательно присутствие функции инициализации.

Библиотеки делятся на два типа:

  • Статические - они связываются с программой на этапе компиляции, они связываются и после этого все функции библиотеки доступны в программе как родные. Такие библиотеки имеют расширение .a;
  • Динамические - такие библиотеки встречаются намного чаще, они загружены в оперативную память, и связываются с программной динамически. Когда программе нужна какая-либо библиотека, она просто вызывает ее по известному адресу в оперативной памяти. Это позволяет экономить память. Расширение этих библиотек - .so, которое походит от Shared Object.

Таким образом, для любой программы на Си нужно подключать библиотеки, и все программы используют какие-либо библиотеки. Также важно заметить, на каком языке бы вы не надумали писать, в конечном итоге все будет сведено к системным библиотекам Си. Например, вы пишите программу на Python, используете стандартные возможности этого языка, а сам интерпретатор уже является программой на Си/С++, которая использует системные библиотеки для доступа к основным возможностям. Поэтому важно понимать как работают программы на Си. Конечно, есть языки, вроде Go, которые сразу переводятся на ассемблер, но там используются принципы те же, что и здесь. К тому же системное программирование linux, в основном, это Си или С++.

3. Процесс сборки программы

Перед тем как мы перейдем к практике и создадим свою первую программу, нужно разобрать как происходит процесс сборки, из каких этапов он состоит.

Каждая серьезная программа состоит из множества файлов, это файлы исходников с расширением .c и заголовочные файлы с расширением .h. Такие заголовочные файлы содержат функции, которые импортируются в программу из библиотек или других файлов .с. Перед тем. как компилятор сможет собрать программу и подготовить ее к работе, ему нужно проверить действительно ли все функции реализованы, доступны ли все статические библиотеки и собрать ее в один файл. Поэтому, первым делом выполняется препроцессор, который собирает исходный файл, выполняются такие инструкции, как include для включения кода заголовочных файлов.

На следующем этапе к работе приступает компилятор, он выполняет все необходимые действия над кодом, разбирает синтаксические конструкции языка, переменные и преобразовывает все это в промежуточный код, а затем в код машинных команд, который мы можем потом посмотреть на языке ассемблера. Программа на этом этапе называется объектный модуль и она еще не готова к выполнению.

Далее к работе приступает компоновщик. Его задача связать объектный модуль со статическими библиотеками и другими объектными модулями. Для каждого исходного файла создается отдельный объектный модуль. Только теперь программа может быть запущена.

А теперь, давайте рассмотрим весь єтот процесс на практике с использованием компилятора GCC.

4. Как собрать программу

Для сборки программ в Linux используется два типа компиляторов, это Gcc и Clang. Пока что GCC более распространен, поэтому рассматривать мы будем именно его. Обычно, программа уже установлена в вашей системе, если же нет, вы можете выполнить для установки в Ubuntu:

sudo apt install gcc

Перед тем как мы перейдем к написанию и сборке программы, давайте рассмотрим синтаксис и опции компилятора:

$ gcc опции исходный_файл_1.с -o готовый_файл

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

  • -o - записать результат в файл для вывода;
  • -c - создать объектный файл;
  • -x - указать тип файла;
  • -l - загрузить статическую библиотеку.

Собственно, это все самое основное, что нам понадобится. Теперь создадим нашу первую программу. Она будет выводить строку текста на экран и чтобы было интереснее, считать квадратный корень из числа 9. Вот исходный код:

int main() printf("losst.ru\n");
printf("Корень: %f\n", sqrt(9));
return 0;
>

Я специально добавил функцию корня чтобы показать как работать с библиотеками. Сначала нужно собрать объектный файл. Перейдите в папку с исходниками и выполните:

gcc -c program.c -o program.o


Это этап компиляции, если в программе нет ошибок, то он пройдет успешно. Если исходных файлов несколько, то такая команда выполняется для каждого из них. Далее выполняем линковку:

gcc -lm program.o -o program


Обратите внимание на опцию -l, с помощью нее мы указываем какие библиотеки нужно подключить, например, здесь мы подключаем библиотеку математических функций, иначе компоновщик просто не найдет где есть та или иная функция. Только после этого можно запустить программу на выполнение:


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


Это две библиотеки загрузчика, стандартная libc и libm, которую мы подключили.

5. Автоматизация сборки

Когда мы рассматриваем программирование под Linux невозможно не отметить систему автоматизации сборки программ. Дело в том, что когда исходных файлов программы много, вы не будете вручную вводить команды для их компиляции. Можно записать их один раз, а затем использовать везде. Для этого существует утилита make и файлы Makefile. Этот файл состоит из целей и имеет такой синтаксис:

цель: зависимости
<Tab> команда

В качестве зависимости цели может быть файл или другая цель, основная цель - all, а команда выполняет необходимые действия по сборке. Например, для нашей программы Makefile может выглядеть вот так:

program: program.o
gcc -lm program.o -o program

program.o: program.c
gcc -c program.c -o program.o

Затем вам достаточно выполнить команду make для запуска компиляции, только не забудьте удалить предыдущие временные файлы и собранную программу:


Программа снова готова и вы можете ее запустить.

Выводы

Создание программ Linux очень интересно и увлекательно. Вы сами убедитесь в этом, когда немного освоитесь в этом деле. Сложно охватить все в такой небольшой статье, но мы рассмотрели самые основы и они должны дать вам базу. В этой статье мы рассмотрели основы программирования в linux, если у вас остались вопросы, спрашивайте в комментариях!

Курс программирования на Си под Linux:

Читайте также: