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

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

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

Достаточно один раз в жизни услышать волшебное заклинание: » configure , make , make install «. Дальше я объясню, что это значит.

Сборку программы можно сравнить с выпечкой пирога. Чаще всего, вначале надо взять все необходимые ингридиенты (исходники),
потом смешать их в нужном порядке (подготовить исходники к сборке, ./configure ), а затем залить в форму и поставить в печь (запустить сборку, make ). Спустя некоторое время из печи можно вынимать готовый к употреблению пирог (устанавливать готовую программу, make install ).

Следует отметить, что в данном случае для выпечки необходима кухня и печь. Также и для сборки программы необходимы инструменты разработчика. Обычно это включает в себя как минимум компилятор и сопутствующие ему программы, как например утилита make . Это и есть «печь». Потребуется и место, где можно всем этим заняться — командная строка (терминал) («кухня»). Если у вас есть и кухня, и печь, то можете начинать готовить.

Итак, все свободные программы доступны в виде исходного кода. Это полуфабрикат программы. Из него легко можно собрать саму программу, а можно и использовать для создания какой-нибудь новой программы. По-английски исходный код называется source code.

Шаг 1: берём исходники

Необходимо скачать и распаковать архив с исходным кодом программы. Например, можно скачать программу hello-2.1.1. Обычно исходники следует брать с сайта разработчиков программы.

Распаковать архив можно так:

$ tar zxvf hello-2.1.1.tar.gz

(Не забывайте, что в большинстве случае нажатие клавиши Tab позволяет дополнить имя файла, введя лишь несколько первых символов). При этом содержимое архива будет распаковано в тот же каталог, в котором находится архив.

Перейдите в каталог с исходным кодом:

$ cd hello-2.1.1

Шаг 2: configure (месим тесто)

Прочитайте файлы INSTALL и README , если они есть в архиве исходного кода. В них может содержаться важная информация о том, как устанавливать и использовать программу.

В большинстве случае для подготовки исходников к сборке потребуется выполнить только одну команду:

hello-2.1.1$ ./configure

Она проверит наличие всех необходимых условий (библиотек и других программ) в Вашей системе, и приготовит исходный код к их использованию. Обратите внимание на символы » ./ » в начале команды. Они указывают, что необходимо выполнить команду configure из текущего каталога, то есть команду configure поставляемую вместе с исходным текстом программы, которую мы собираем.

Основы программирования: Исходный код

На этом же этапе можно указать и куда именно надо ставить программу. Хотя в большинстве случаев рекомендуется ставить «самосборные» программы в каталог /usr/local , иногда это невозможно. Так, если у пользователя нет прав администратора, например на общественном компьютере, то установить программу можно только в свой домашний каталог. Чтобы установить программу в домашний каталог нужно указать дополнительный параметр команде configure :

hello-2.1.1$ ./configure —prefix=$HOME

Дополнение: на самом деле, я обычно устанавливаю программы с префиксом /usr/local/stow/название-программы , а после установки использую утилиту stow , чтобы поставить символические ссылки на файлы программы в системных каталогах. Использование утилиты stow позволяет мне потом легко удалить установленную программу, не связываясь при этом с более трудоёмкой сборкой пакетов.

Внимательно читайте что пишется на экране при подготовке исходников. Если всё нормально, то закончится она должна чем-нибудь вроде

config.status: creating Makefile
config.status: creating contrib/Makefile
config.status: creating doc/Makefile
config.status: creating intl/Makefile
.

Если же появляются какие-то сообщения об ошибках, значит чего-то на вашей «кухне» для приготовления этой программы видимо не хватает. Чаще всего какой-нибудь библиотеки. Какой — подскажет вывод программы configure

Читайте также:
Параметры классификации мультимедийных обучающих программ

Шаг 3: make (в печь!)

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

hello-2.1.1$ make

Для больших программ этот процесс может занимать довольно много времени. Однако наша программа-пример hello должна собраться быстро.

Если сборка закончилась сообщением вроде этого:

make: *** [all] Ошибка 2

то значит, что-то пошло не так, и сборка не получилась. Однако чаще всего сборка заканчивается без ошибок.

Шаг 4: make install (кушать подано!)

Собственно всё. Пирог можно подавать к столу, а собранную программу устанавливать в систему. Делается это так:

hello-2.1.1$ make install

Если на шаге подготовки исходников Вы выбрали вариант установки в домашний каталог (как я), то не забудьте добавить подкаталог ~/bin в переменную PATH :

$ export PATH=$HOME/bin:$PATH

Можете запускать собранную программу:

$ hello
Здравствуй, мир!

Она пишет на экран «Здравствуй, мир!». Всё ОК.

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

P.S. Хочу, однако, заметить, что сборка из исходников несёт с собой целый ряд неудобств. Первое и наиболее существенное из них — удалять такую программу гораздо хлопотнее. В случае с hello это можно сделать с помощью команды

hello-2.1.1$ make uninstall

в каталоге с её исходным кодом, но не всегда этот каталог сохраняется в целостности, да и не все авторы программ должным образом готовят исходные тексты к make uninstall

Поэтому лучше пользоваться готовыми пакетами, поставляемые с Вашим дистрибутивом. Так, чтобы установить программу hello в Debian GNU/Linux достаточно всего одной команды:

Источник: s.arboreus.com

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

Написал простую Hello World программу в блокноте и сохранил, как надо. Что делать дальше, чтобы из этого получилась программа?

Отслеживать
36.7k 6 6 золотых знаков 47 47 серебряных знаков 121 121 бронзовый знак
задан 18 ноя 2016 в 23:35
41 2 2 бронзовых знака

Э-м-м. Нажать кнопку для компиляции в IDE. Суть ваших затруднений не ясна, попробуйте более подробно описать вашу проблему

19 ноя 2016 в 0:09

Ну если в блокноте то тогда лучше через командную строку запустить . Но лучше почитайте Шилда Java 8 там расписаны первые шаг

19 ноя 2016 в 7:29
Я пытался через командную строку но вообще без результата
19 ноя 2016 в 7:30
Предлагаю ответить, как компилировать и запускать код из командной строки.
19 ноя 2016 в 7:59

19 ноя 2016 в 8:18

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

в операционной системе gnu/linux, при наличии установленных программ javac и java , вот такой файл:

class helloworld < public static void main(String[] args) < System.out.println(«hello world!»); >>

сохранённый в текущем каталоге под именем helloworld.java , можно скомпилировать командой:

$ javac helloworld.java

и запустить полученный файла helloworld.class командой:

$ java helloworld
hello world!

установить программы javac и java можно разными способами, наиболее простой и логичный — из репозитория вашего дистрибутива. например, в debian-основных дистрибутивах это можно сделать командой:

$ sudo apt install default-jdk

Источник: ru.stackoverflow.com

Бинарные и исходные пакеты: что использовать?

Бинарные и исходные пакеты: что использовать?

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

Читайте также:
Установить программу для сканера canon mf3010

Что такое бинарные пакеты?

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

Файлы для отдельных программ хранятся в архивном формате. . Это объединяет все в один файл для быстрого доступа позже. Например, Debian использует формат DEB для хранения своих программ. Эти пакеты называются бинарными пакетами .

формат пакета deb

Для установки требуется специальная программа для распаковки этих файлов и помещения их на компьютер. То есть ваш менеджер пакетов (например, APT, Yum и т. Д.). Он также выполняет другие полезные функции, такие как отслеживание установленных файлов и управление обновлениями программного обеспечения.

Откуда берутся посылки?

Все программное обеспечение написано в строках текста, называемых исходным кодом. Они написаны на конкретных языках программирования , , например, C или C ++. Как правило, однако, вы не можете просто связать это в архив и назвать его пакетом. Эти строки должны быть переведены на язык, который ваш компьютер может понимать и выполнять.

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

Что такое установка «Из источника»?

Компиляция исходного кода не только для создания пакетов. На самом деле создание такого архива из него даже не нужно. По сути, установка программы «из исходного кода» означает установку чего-либо без использования менеджера пакетов . Вы компилируете исходный код и вместо этого копируете двоичные файлы на свой компьютер.

В большинстве случаев вы можете загрузить исходный код проекта с таких хостинговых сервисов, как GitHub или BitBucket . Большие программы могут даже разместить его на личном веб-сайте. Код обычно застежка в архивном формате (также известный как пакет источника).

дерево исходного пакета

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

Emacs Makefile

Для этого программы предоставляют make с make-файлом, который сообщает ему, что делать и компилировать. В наши дни он обычно автоматически генерируется специальным программным обеспечением, таким как CMake. Это то место, куда входит пользователь. Потому что здесь они могут точно указать, какие функции они хотели бы встроить в свое собственное программное обеспечение.

Быстрая демонстрация

Например, приведенная ниже команда создает файл конфигурации для Calligra Office Suite используя CMake. Созданный файл сообщает программе make только о компиляции компонента Writer в Calligra.

cmake -DPRODUCTSET=WORDS -DCMAKE_INSTALL_PREFIX=$HOME/kde/inst5 $HOME/kde/src/calligra

Сделав это, все, что нужно сделать человеку, это запустить инструмент make, чтобы скомпилировать и скопировать результаты на свой компьютер. Это делается следующим образом:

make make install

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

Преимущества использования бинарных пакетов

Если вы используете Linux, скорее всего, установленные вами программы были предварительно скомпилированы. В наши дни это гораздо чаще, чем использование исходных пакетов. Есть несколько причин, почему это так.

Проще управлять

Бинарные пакеты содержат гораздо больше, чем просто скомпилированные установочные файлы. Они также хранят информацию, которая упрощает работу вашего менеджера пакетов. пакетами. чтобы отслеживать все ваши программы. Например, файлы DEB (формат пакета для Debian и производные от Debian) также содержат важную информацию, например, какое другое программное обеспечение необходимо для запуска программы, и его текущая версия.

формат пакета deb

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

Читайте также:
Что проходят по русскому языку в 3 классе программа 21 век

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

Улучшенная стабильность

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

Например, в репозиториях Debian есть несколько пакетов, к которым применены исправления. Это может включать даже большие программы, такие как веб-браузеры. !

патчи Debian

Наряду с этим, пакеты обычно должны придерживаться строгого набора правил, чтобы гарантировать, что они будут работать в вашей системе. Например, Debian и Ubuntu имеют руководство по политике, как и многие другие операционные системы Linux.

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

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

Установка программ из исходного кода — это не то, что нужно делать всем. На самом деле, лучше, если вы будете придерживаться бинарных пакетов. Тем не менее, есть несколько преимуществ использования этого немного более сложного способа установки программ.

Последнее программное обеспечение

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

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

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

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

Тщательно выбирать

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

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

особенности ffmpeg

Компиляция FFmpeg позволяет вам убрать из него то, что вам не нужно, сделать его более легким и приспособленным к вашим потребностям. И то же самое относится и к другим тяжелым программам.

Когда ресурсов недостаточно, удаление функций может стать отличным способом облегчить нагрузку. Неудивительно, что Chrome OS , найденный на многих недорогих компьютерах, основан на Gentoo Linux. Gentoo, основанный на исходных текстах, компилирует большую часть своего программного обеспечения, что потенциально делает эти системы намного более легкими.

Почему бы не установить с обоими?

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

Вам когда-нибудь приходилось компилировать программное обеспечение раньше? Зачем?

Изображение предоставлено: Андрей Симоненко через Shutterstock.com

Источник: gadgetshelp.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru