Как скомпилировать программу


Как скомпилировать программу через Terminal в UNIX подобных системах

Решили перейти с windows на unix подобную систему, например Mac OSX, захотели научиться программировать на С, но тут возникает проблема(такое бывает), как скомпилировать программу? Одним из самых распространенных компиляторов для языка С/С++ является GCC(GNU Compiler Collection). Стоит сделать справедливое замечание, что GCC способен компилировать много разных языков, помимо C и доступен на разных операционных системах(в нашем случае на Mac OS X).

Для начала напишем программу, я пишу в XCODE, но это не принципиально. Напишем элементарную программу, которая при запуске выводит «Hello World»

Теперь нам нужно сохранить этот файл под названием, например, main.c(на рабочий стол, для простоты). Теперь запускаем Terminal и выходим на рабочий стол. 

Если вы не знаете как это сделать, то подписывайтесь на обновления блога и, буквально через 2-3 статьи, я расскажу как работать в Terminale mac os. Я сохранил программу в папку на рабочем столе, теперь, когда мы попали в папку через Terminal, нужно скомпилировать программу.

Для этого вводим следующую команду в консоль:

gcc main.c -o hello

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

Вот так это выглядит:

Вот и все, такой маленький вводный урок.

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

yhoome.ru

Компиляция программ Linux

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

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

В этой статье мы рассмотрим, как выполняется компиляция программ Linux, как происходит процесс компиляции, а также рассмотрим насколько гибко вы сможете все настроить.

Подготовка системы

Мы будем компилировать программы, написанные на Си или С++, так как это наиболее используемый язык для программ, которые требуют компиляции. Мы уже немного рассматривали эту тему в статье установка из tar.gz в Linux, но та статья ориентирована больше на новичков, которым нужно не столько разобраться, сколько получить готовую программу.

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

sudo apt install build-essential manpages-dev git automake autoconf

Затем вы можете проверить правильность установки и версию компилятора:

 gcc --version

Но перед тем как переходить к самой компиляции программ рассмотрим более подробно составляющие этого процесса.

Как выполняется компиляция?

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

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

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

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

Первое что нам понадобиться - это исходники самой программы. В этом примере мы будем собирать самую последнюю версию vim. Это вполне нейтральная программа, достаточно простая и нужная всем, поэтому она отлично подойдет для примера.

Получение исходников

Первое что нам понадобиться, это исходные коды программы, которые можно взять на GitHub. Вы можете найти исходники для большинства программ Linux на GitHub. Кроме того, там же есть инструкции по сборке:

Давайте загрузим сами исходники нашей программы с помощью утилиты git:

git clone https://github.com/vim/vim

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

cd vim

Настройка configure

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

Если configure нет в папке с исходниками, вы можете попытаться выполнить такие скрипты чтобы его создать:

./bootstrap $ ./autogen.sh

Также для создания этого скрипта можно воспользоваться утилитой automake:

aclocal $ autoheader $ automake --gnu --add-missing --copy --foreign

$ autoconf -f -Wall

Утилита automake и другие из ее набора генерируют необходимые файлы на основе файла Mackefile.am. Этот файл обязательно есть в большинстве проектов.

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

./configure --help

Рассмотрим наиболее часто используемые, стандартные для всех программ опции:

  • --prefix=PREFIX - папка для установки программы, вместо /, например, может быть /usr/local/, тогда все файлы будут распространены не по основной файловой системе, а в /usr/local;
  • --bindir=DIR - папка для размещения исполняемых файлов, должна находится в PREFIX;
  • --libdir=DIR - папка для размещения и поиска библиотек по умолчанию, тоже в PREFIX;
  • --includedir=DIR - папка для размещения man страниц;
  • --disable-возможность - отключить указанную возможность;
  • --enable-возможность - включить возможность;
  • --with-библиотека - подобно enable активирует указанную библиотеку или заголовочный файл;
  • --without-библиотека - подобное disable отключает использование библиотеки.

Вы можете выполнить configure без опций, чтобы использовать значения по умолчанию, но также можете вручную указать нужные пути. В нашем случае ./configure есть, и мы можем его использовать:

./configure

Во время настройки утилита будет проверять, есть ли все необходимые библиотеки в системе, и если нет, вам придется их установить или отключить эту функцию, если это возможно. Например, может возникнуть такая ошибка: no terminal library found checking for tgetent()... configure: error: NOT FOUND!

В таком случае нам необходимо установить требуемую библиотеку. Например, программа предлагает ncurses, поэтому ставим:

sudo apt install libncurces-dev

Приставка lib всегда добавляется перед библиотеками, а -dev - означает, что нам нужна библиотека со всеми заголовочными файлами. После удовлетворения всех зависимостей настройка пройдет успешно.

Сборка программы

Когда настройка будет завершена и Makefile будет готов, вы сможете перейти непосредственно к сборке программы. На этом этапе выполняется непосредственно преобразование исходного кода в машинный. Утилита make на основе Makefile сделает все необходимые действия:

make

Дальше осталось установить саму программу, если вы использовали опцию prefix, чтобы не устанавливать программу в основную файловую систему, то можно применить стандартную опцию make:

make install

После этого программа будет установлена в указанную вами папку, и вы сможете ее использовать. Но более правильный путь - создавать пакет для установки программы, это делается с помощью утилиты checkinstall, она позволяет создавать как deb, так и rpm пакеты, поэтому может использоваться не только в Ubuntu. Вместо make install выполните:

checkinstall

Затем просто установите получившийся пакет с помощью dpkg:

sudo dpkg install vim.deb

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

Если вы устанавливали программу с помощью make install, то удалить ее можно выполнив в той же папке обратную команду:

sudo make uninstall

Команда удалит все файлы, которые были скопированы в файловую систему.

Выводы

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

На завершение видео о том, что такое компилятор и интерпретатор:

losst.ru

Компиляция программы

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

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

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

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

Схема действия компилятора:

Схема, по которой работает компилятор, приведена на рисунке ниже:

Основные задачи компилятора:

На рисунке отмечено, что компилятор последовательно осуществляет две основные задачи:

  1. Производит проверку текста исходной программы на содержание или отсутствие в ней всевозможных синтаксических ошибок.
  2. Разрабатывает исполняемую программу — преобразует исходную программу в машинный код.

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

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

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

Похожие записи:

kvodo.ru

Урок 9. Про компиляцию, интерпретацию и .EXE файл

Здравствуйте, дорогие читатели! Сегодня мы с вами немного окунемся в теорию. Наверняка, вы все когда-то хотели отправить свою супер-пупер программу другу. Но как это сделать? Не заставлять же его устанавливать PascalABC.NET! О том, как это сделать, мы сегодня и поговорим.

Все языки программирования делятся на два типа — интерпретируемые и компилируемые.

Интерпретаторы

Программируя на интерпретируемом языке, мы пишем программу не для выполнения в процессоре, а для выполнения программой-интерпретатором. Ее также называют виртуальной машиной.

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

При интерпретации выполнение кода происходит последовательно строка за строкой (от инструкции до инструкции). Операционная система взаимодействует с интерпретатором, а не исходным кодом.

Примеры интерпретируемых языков: PHP, JavaScript, C#, Python.

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

Программы же, рассчитанные на интерпретаторы, могут выполняться в любой системе, где таковой интерпретатор присутствует. Типичный пример — код JavaScript. Интерпретатором его выступает любой современный браузер. Вы можете однократно написать код на JavaScript, включив его в html-файл, и он будет одинаково выполняться в любой среде, где есть браузер. Не важно, будет ли это Safari в Mac OS, или же Internet Explorer в Windows.

Компиляторы

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

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

При компиляции весь исходный программный код (тот, который пишет программист) сразу переводится в машинный. Создается так называемый отдельный исполняемый файл, который никак не связан с исходным кодом. Выполнение исполняемого файла обеспечивается операционной системой. То есть образуется, например,.EXE файл.

Примеры компилируемых языков: C, C++, Pascal, Delphi.

Препроцессинг

Эту операцию осуществляет текстовый препроцессор.

Исходный текст частично обрабатывается — производятся:

  • Замена комментариев пустыми строками
  • Подключение модулей и т. д. и т. п.

Компиляция

Результатом компиляции является объектный код.

Объектный код — это программа на языке машинных кодов с частичным сохранением символьной информации, необходимой в процессе сборки.

Компоновка

Компоновка также может носить следующие названия:  связывание, сборка или линковка.

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

EXE файл.

После компоновки у вас образуется.EXE файл вашей программы. Вы можете кинуть ее другу, и она откроется у него прямо в командной строке, как в старом добром DOS. Давайте попробуем создать.EXE файл. Все действия будут приводится в PascalABC.NET.

Заходим в Сервис -> Настройки -> Опции компиляции. Поверяем, стоит ли галочка напротив 2 пункта. Если стоит, то убираем ее.

Теперь откройте свою программу и запустите ее.

Откройте директорию, в которой у вас лежит исходный код программы.

Вот он,.EXE файл.

Кликаем по приложению. Как вы видите, после ввода данных, окошко сразу закрывается. Для того чтобы окно не закрывалось сразу, следует дописать две строчки кода, а именно: uses crt (перед разделом описания переменных) и readkey (в конце кода, перед оператором end).

Подключаем внешнюю библиотеку crt и используем встроенную в нее функцию readkey.

Теперь окно закроется по нажатию любой клавиши.

На заметку: [button colour=»black» type=»dropshadow» size=»small» link=»» target=»_self»]PascalABC.NET[/button] — это интегрированная среда разработки.

Среда разработки включает в себя:

  • текстовый редактор;
  • компилятор;
  • средства автоматизации сборки;
  • отладчик.

На сегодня все! Задавайте любые вопросы в комментариях к этой статье. Не забывайте кликать по кнопочкам и делится ссылками на наш сайт со своими друзьями. А для того, чтобы не пропустить выход очередной статьи, рекомендую вам подписаться на рассылку новостей от нашего сайта. Одна из них находится в самом верху справа, другая — в футере сайта.

learnpascal.ru

Как скомпилировать Python код в .exe

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

Хочется отметить, что для меня Python является одним из самых интересных, мощных языков программирования. С ним я познакомился примерно в 2016 году и только спустя год осознал всю его мощь и красоту.

Многие задаются вопросом, когда написали программу на Python: “А как его скомпилировать в .exe файл?”. Вопрос довольно сложный, для того, кто только открыл для себя этот язык и ещё не сталкивался с pip.

pip – система управления пакетами, которая используется для установки и управления программными пакетами, которые написаны на Python. Если кратко, то pip – это файловый менеджер языка Python.

pyinstaller – программа, которая собирает все зависимости и python-приложение в один пакет и превращает его в исполняемый файл для Windows, Linux, MacOS.

Как скомпилировать Python код в .exe | практикум

Давайте разберем, как скомпилировать Python код в .exe за минуту, с помощью Терминала(в Linux) или cmd(Windows).

Для начала, нам нужно установить pyinstaller с помощью pip. Пишем команду в командной строке:

pip install pyinstaller

Если вы используете Linux и у вас не установлен pip, то просто напишите команду:

apt-get install python-pip

На Windows, если вы не изменяли конфигурации установки Python, проблемы отсутствия pip у вас возникнуть не должно.

Вторым шагом будет переход в директорию с нашим проектом. Просто копируем путь и с помощью команды cd (наш путь) переходим в директорию, для Linux и Windows команда одинаковая.

Теперь давайте скомпилируем наш Python код в .exe, не будем тянуть.

Сделаем мы это с помощью установленного пакета pyinstaller.

Пишем команду:

pyinstaller -F -w -i( to set up icon on your .exe) main.py

Давайте разберем каждый флаг, они не обязательно все вам понадобятся.

  • -F – этот флаг отвечает за то, чтобы в созданной папке dist, в которой и будет храниться наш исполняемый файл не было очень много лишних файлов, модулей и т.п.
  • -w – этот флаг вам понадобится в том случае, если приложение использует tkinekt, оно блокирует создание консольного окна, если же ваше приложение консольное, вам этот флаг использовать не нужно.
  • -i – этот флаг отвечает за установку иконки на наш исполняемый файл, после флага нужно указать полный путь к иконке с указанием её имени. Например: D:\LayOut\icon.ico

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

Так же подписывайтесь на обновления сайта, тут будет ещё много интересного!

Удачи в жизни и до встречи!

www.make-info.com

❶ Как компилировать linux

Инструкция

Определите место хранения исполняемого файла jsc.exe на компьютере. Путь к файлу определяется именем и расположением каталогов операционной системы и версией используемого модуля .NET Framework (рекомендуется использование самой последней версии). Данное действие необходимо для изменения переменной среды PATH для получения возможности осуществлять запуск компилятора из любой папки. Наиболее вероятным выглядит путь:

C:\Windows\Microsoft.NET\Framework\vномер_версии.

Вызовите контекстное меню значка «Компьютер» на рабочем столе кликом правой кнопки мыши и укажите пункт «Свойства».

Раскройте ссылку «Дополнительные параметры» в открывшемся окне панели управления и перейдите на вкладку «Дополнительно» нового диалогового окна.

Выполните нажатие кнопки «Переменные среды» и укажите пункт Path в разделе «Системные переменные».

Нажмите кнопку «Изменить» и найдите поле «Значение переменной» в открывшемся диалоговом окне «Изменение системной переменной».

Введите следующее значение в конец найденной строки:;полный_путь_к_файлу_jsc.exe.

Подтвердите применение выбранных изменений нажатием кнопки OK.

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

Введите значение cmd в поле «Открыть» и нажмите кнопку OK для подтверждения выполнения команды запуска.

Введите значение jsc файл.js в текстовое поле командной строки и нажмите функциональную клавишу Enter для создания исполняемого файла программы или укажите значение jsc /target:library файл.js для получения нужного файла библиотеки .dll.

Используйте значение jsc /out:новое_имя.exe файл.js для создания исполняемого файла с новым именем или введите значение jsc \debug файл.js для выполнения компиляции с отображением отладочной информации.

Нажмите функциональную клавишу Enter для подтверждения применения выбранных изменений.

Видео по теме

Источники:

  • Компиляция кода JScript из командной строки

www.kakprosto.ru


Смотрите также