Скомпилировать программу что это значит

Основы работы в IDE Pelles C.

В этой части урока мы напишем первую программу и попутно освоим основные команды IDE Pelles C, которые пригодятся нам в дальнешем.

Видео-инструкция по установке IDE Pelles C.

На видео показан процесс установки среды разработки Pelles С.

Текстовая инструкция по созданию первой программы в Pelles C.

Создаем новый файл с исходным кодом, используя контекстное меню (File -> New -> Source Cod), либо используя комбинацию клавиш Ctrl+N.

Создание нового файла с кодом.

Рис.1 Создание нового файла с кодом.

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

Окно текстового редактора в IDE Pelles C.

Рис.2 Окно текстового редактора в IDE Pelles C.

Скопируйте в окно редактора следующий код:

Что такое компиляция, линковка? Что такое run time?

Листинг 1. Программа «Hello, World!»

#include int main(void)

Это простая программа, которая выводит на экран сообщение: «Hello, World!». Большинство пособий по программированию начинается как раз с написания этой программы. Можно сказать, что это стало уже доброй традицией в обучении программированию.

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

После того как код написан, сохраняем файл, используя контекстное меню (File -> Save as. )

Меню файл IDE Pelles C.

Рис.3 Меню файл IDE Pelles C.

Меню Сохранить как. в IDE Pelles C.

Рис.4 Меню Сохранить как. в IDE Pelles C.

Компилируем исходный код, используя кнопку меню.

Страница загрузки IDE Pelles C.

Рис.5 Компиляция в Pelles C.

Так как мы будем писать самый простые консольные приложения, то в появившемся окошке выбираем пункт Win32 Console program(EXE) и нажимаем Ok.

Окно выбора типа нового проекта в IDE Pelles C.

Рис.6 Окно выбора типа нового проекта в IDE Pelles C.

После компиляции справа появится еще одно маленькое окно обозреватель.

Вид текстового редактора после компиляции IDE Pelles C.

Рис.7 Вид текстового редактора IDE Pelles C после компиляции.

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

Легко заметить, что сейчас никаких сообщений об ошибках нет.

Так как ошибок при компиляции не обнаружено, то запускаем нашу программу, используя горячие клавиши Ctrl+F5, либо кнопку меню.

Выполнение скомпилированной программы.

Рис.8 Выполнение скомпилированной программы.

Если всё сделано верно, то перед вам откроется окно консоли, в котором будет выведена строка «Hello, world!».

Окно консоли после успешного выполнения программы.

Рис.9 Окно консоли после успешного выполнения программы.

Про сообщения компилятора, ошибки и предупреждения

Компилятор выдаёт два типа сообщений: предупреждения (warning) и ошибки (error).

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

Сообщение компилятора об ошибке в программе.

Рис.10 Сообщение компилятора об ошибке в программе.

Как видите, компилятор помимо того, что указывает на факт наличия ошибки, так еще и уточняет, что это за ошибка и даже указываем место, где она находится. Это очень помогает при исправлении ошибок. Например, в этой ошибке записано, что в пятой строчке допущена синтаксическая ошибка(Syntax error) – отсутствует «;» перед return.

Вот вы и научились основным приемам работы в среде Palles C.

Теперь пора разобраться с тем, что же мы такое тут написали.

Дополнительные материалы

  • Традиционно в большинстве книг по программированию, в качестве первой программы предлагается программа «Hello, world». Этим никого не удивишь. Но вот что интересно.
    Такая традиция появилась благодаря книге «Язык программирования Си» (The C programming language) Б. Керниган, Д. Ричи выпущенной в свет в 1978 году. Эту книгу еще называют «white book».
    Второе издание (1988) этой книги было переведено на 27 языков. На картинках представлены обложки первого и второго издания книги, а также обложки трех переводов, второго издания книги, на русский язык. На сайте Bell Labs есть даже специальная страница , посвященная данной книге. Там же можно посмотреть обложки на других языках.
    Хотя с тех пор много воды утекло, многие до сих пор советуют второе издание этой книги, как классический учебник для изучения языка Си.

Источник: youngcoder.ru

Введение в платформу .NET Framework и ASP.NET

Как мы разобрались в предыдущей лекции, процесс компиляции и исполнения приложений . NET отличается от процесса исполнения традиционных ( native ) приложений. При компиляции приложения . NET на выходе получается бинарный файл , который содержит команды на языке MSIL , а не инструкции для центрального процессора. Этот факт отличает процесс функционирования приложений . NET . Фактически, приложения . NET компилируются в два этапа:

  • Исходный код (на языке C#, Visual Basic или др.) преобразуется в MSIL;
  • Код на языке MSIL преобразуется в машинный код.

Теоретически, программный код, разработанный на разных языках программирования в среде . NET (C#, Visual Basic . NET и др.) и преобразованный в код на языке MSIL , в конечном счете, будет иметь одинаковый вид. Кроме того, после преобразования программного кода в MSIL будет затруднительно определить исходный язык программирования .

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

Читайте также:
Что за программа цс

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

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

При запуске кода на языке IL происходит его преобразование в машинный код. При этом весь процесс преобразования происходит в той среде, где приложение должно быть запущено (на компьютере конечного пользователя, где исполняется приложение ). Этот факт позволяет оптимизировать конечный машинный код, который получается в процессе преобразования, для той платформы, в рамках которой он будет исполняться. Также при таком подходе нет необходимости иметь две различных сборки для разных сред (32- и 64-разрядных) – конечный машинный код будет получен с учетом специфики платформы. Поскольку преобразование » MSIL – машинный код» требует определенного времени, среда исполнения записывает полученный машинный код в системных папках и при последующем запуске приложения, которое запускалось ранее, используется уже готовый код. Общий процесс компиляции выглядит следующим образом.

Механизм, который занимается преобразованием кода MSIL в машинный код, называется компилятором JIT (» just-in-time «). Этот компилятор преобразует код MSIL в машинный код «на лету». Это позволяет сделать процесс запуска приложений более «прозрачным». При запуске исполняемого файла . NET компилятор автоматически определяет, была ли эта сборка скомпилирована.

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

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

В случае, когда необходимо выполнить предкомпиляцию приложения до его запуска (для предотвращения ситуации компиляции приложения «на лету»), можно воспользоваться утилитой NGen ( native image generator ), которая поставляется в составе . NET Framework. Утилита NGen использует аналогичные методы компиляции приложения, что и компилятор JIT . Однако, от компилятора JIT эту утилиту отличает три аспекта:

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

Утилита NGen является консольным приложением и запускается из командной строки. Она позволяет сделать несколько различных действий:

  • скомпилировать сборку и установить ее в кэш сборок (ключ install );
  • удалить сборку из кэша сборок (ключ uninstall );
  • обновить сборку в кэше сборок (ключ update );
  • отобразить состояние процесса компиляции (ключ display );
  • управлять очередью выполнения компиляции (ключ queue ).

Общий процесс компиляции приложений . NET представлен на следующей схеме.

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

Краткие итоги

Все приложения . NET поставляются в виде скомпилированного кода MSIL . Весь процесс компиляции приложения . NET состоит из двух этапов – преобразования исходного кода программы в код на языке MSIL и преобразование кода MSIL в машинный код. Такой процесс позволяет абстрагироваться от платформы исполнения, а также оптимизировать машинный код под конкретную платформу. Преобразование кода MSIL в машинный код происходит в момент запуска программы JIT -компилятором, а результат сохраняется в специальном кэше. Поэтому первый запуск . NET приложения может осуществляться с небольшой задержкой. Однако, этого можно избежать, если использовать утилиту NGen.

Источник: intuit.ru

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

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

Здесь, шаг за шагом, я опишу как установить компилятор Borland C++, который используется для сборки программ из исходных кодов на Си++

1. Скачать Borland C++ compiler 5.5 (для ОС Windows) можно у нас на сайте, или:

1. После скачивания, запустите freecommandLinetools.exe. По умолчанию путь для установки программы:

C:BorlandBCC55

Теперь необходимо сконфигурировать программу:

1. В любом месте, можно на рабочем столе, создайте два тексовых документа.

Читайте также:
Что за программа verse

2. Откройте один из них — Текстовый документ.txt и добавьте следующее:

Сохраните документ. Теперь переименуйте файл из Текстовый документ.txt в bcc32.cfg.

3. Откройте второй — Текстовый документ(2).txt и добавьте следующее:

Сохраните документ. Теперь переименуйте файл из Текстовый документ(2).txt в ilink32.cfg.

4. Скопируйте оба документа — bcc32.cfg и ilink32.cfg в директорию C:BorlandBCC55Bin

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

C:BorlandBCC55Bin>bcc32 helloword.c
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
helloword.c:
Error E2209 helloword.c 1: Unable to open include file ‘iostream’
Error E2451 helloword.c 6: Undefined symbol ‘std’ in function main
Error E2379 helloword.c 6: Statement missing ; in function main
Warning W8070 helloword.c 9: Function should return a value in function main
*** 3 errors in Compile ***
C:BorlandBCC55Bin>

А вот что я увидел, когда открыл файлик bcc32.cfg текстовым редактором “Texter”:

С текстовым редактором разобрались.

Для работы с компилятором всё готово.

Как скомпилировать программу из исходников Си++ (.С++)?

Для примера возьмём программу Hello, world! Исходники на С++ можно взять здесь:

#include //Подключаем библиотеку, содержащую функцию вывода
//»cout»
int main() //Основная функция любой программы на C++.
//Выполнение программы всегда начинается с нее.
std::cout //или заключенный в кавычки текст, следующие после « //»n» является специальным символом перевода курсора на новую строку
>

1. Называем файл helloword.cpp, кладём в C:BorlandBCC55Bin

2. Запускаем консоль – Кн. Пуск -> Выполнить -> cmd

3. Переходим в каталог программы, -> cd C:BorlandBCC55Bin

4. bcc32.exe helloword.cpp

5. Если программа компилятора (Borland C++ compiler 5.5) не не что не ругается, значит, компиляция прошла удачно и в директории C:BorlandBCC55Bin у вас кроме прочего появился файл helloword.exe

6. Чтобы запустить нашу программу, опять нужна консоль -> Запускаем консоль – Кн. Пуск -> Выполнить -> cmd, Переходим в каталог программы, -> cd C:BorlandBCC55Bin, далее пишем helloword.exe и в ответ получаем Hello, world!

Теперь вы готовы попробовать написать свою собственную программу на Си++ и создать исполняемый файл.

Источник: helpset.ru

Создание, компиляция и выполнения Java программ

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

Для создания и редактирования исходного кода Java вы можете использовать любой текстовый редактор или IDE. Этот раздел демонстрирует, как создавать, компилировать и запускать программы Java из командной строки. В разделе «Компиляция и запуск Java программ в NetBeans» показано, как это делать в IDE на примере NetBeans.

Можно вообще обойтись без IDE, а писать исходный код в любом текстовом редакторе (например, в Notepad), а компилировать в командной строке.

Внимание: файл с исходным кодом должен иметь расширение .java и иметь в точности такое же имя, как и имя публичного (public) класса. Например, файл с исходным кодом:

public class Welcome < public static void main(String[] args) < System.out.println(«Welcome to Java!»); >>

должен называться Welcome.java, поскольку имя public класса – Welcome.

Компилятор Java преобразовывает файл с исходным кодом Java в файл с байткодом Java. Следующая команда компилирует Welcome.java:

javac Welcome.java

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

Чтобы иметь возможность компилировать и запускать программы, вы должны установить JDK. Как это сделать описано в инструкциях:

  • Установка Java (JDK) в Windows
  • Установка Java (JDK) в Linux

Язык Java – это высокоуровневый язык программирования, но байткод Java – это низкоуровневый язык. Байткод похож на машинные инструкции, но нейтрален к архитектуре (не зависит от архитектуры) и может запускаться на любой платформе, которая имеет виртуальную машину Java – Java Virtual Machine (JVM).

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

Выполнить Java программу – это значит запустить байткод программы. Вы можете выполнить байткод на любой платформе с JVM, которая является интерпретатором. Она (виртуальная машина Java) переводит отдельные инструкции байткода в целевой машинный языковой код. Это делается последовательно – одна инструкция за раз, а не вся программ за один присест. Каждый шаг немедленно выполняется, сразу после перевода.

Следующая команда выполняет байткод для программы, которая приведена выше:

java Welcome

На скриншоте ниже показан процесс компиляции и запуска:

Внимание: не используйте расширение .class в команде, когда запускаете программу. Используйте ИмяКласса для запуска программы. Если вы в командной строке используете ИмяКласса.class, то система будет пытаться работать с файлом ИмяКласса.class.class.

Справка: когда выполняется Java программа, JVM начинает с загрузки байткода класса в память, используя программу под названием загрузчик классов (class loader). Если ваша программа использует другие классы, загрузчик классов динамически подгружает их перед тем, как они понадобятся. После загрузки класса, JVM использует программу под названием контролёр байткода (bytecode verifier) для проверки правильности байткода и проверки, что байткод не нарушает ограничений безопасности Java. Java обеспечивает строгую защиту, чтобы убедиться, что файлы классов Java не подделаны и не вредят вашему компьютеру.

Читайте также:
Амбрелла что за программа

Педагогическое примечание: ваш инструктор может требовать от вас использовать пакеты для организации программ. Например, все программы из этой части можно поместить в пакет chapter2. Подробности о пакетах и пространствах имён будут рассмотрены далее. Также посмотрите раздел «Почему NetBeans всегда использует package».

Типичные ошибки компиляции и запуска Java программ

Команда javac не найдена

Если при запуске javac, т.е. при попытке компиляции Java программы вы получаете ошибку:

«javac» не является внутренней или внешней командой, исполняемой программой или пакетным файлом.

Это означает, что JDK не установлен. Либо установлен, но не настроены переменные окружения. Способы исправления очевидны:

  • установить JDK
  • настроить переменные окружения

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

C:Program FilesJavajdk1.8.0_131binjavac.exe программа_для_компиляции.java

Ошибка Class names are only accepted if annotation processing is explicitly requested

Если попытаться скомпилировать программу следующим образом:

«C:Program FilesJavajdk1.8.0_131binjavac.exe» Welcome2

то возникнет ошибка:

error: Class names, ‘Welcome’, are only accepted if annotation processing is explicitly requested 1 error

Причина ошибки в том – что вы забыли указать расширение файла .java.

Ошибка записи (error while writing)

C:UsersAlex>»C:Program FilesJavajdk1.8.0_131binjavac.exe» C:Welcome.java

Компиляция заканчивается ошибкой:

C:Welcome.java:1: error: error while writing Welcome: C:Welcome.class (╬Єърчрэю т фюёЄєях) public class Welcome < ^ 1 error

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

Ошибка «class is public, should be declared in a file named»

«C:Program FilesJavajdk1.8.0_131binjavac.exe» C:Welcome.java

который заканчивается примерной такой ошибкой

C:Welcome.java:1: error: class Welcomee is public, should be declared in a file named Welcomee.java public class Welcomee < ^ 1 error

означает, что вы неправильно назвали класс в исходном коде программы. Имя класса должно совпадать с именем файла. В данном случае файл называется Welcome.java, а класс внутри программы назван Welcomee

Error: Could not find or load main class

Если попытаться запустить программу следующим образом:

java Welcome.class

то возникнет ошибка

Error: Could not find or load main class Welcome.class

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

Ошибка Error: Could not find or load main class при запуске Java программы по абсолютному пути

Эта ошибка возможно при запуске Java программы по абсолютному пути:

java C:Welcome
Error: Could not find or load main class C:Welcome

Ошибка возникает как в Windows, так и в Linux:

java /home/mial/Welcome Error: Could not find or load main class .home.mial.Welcome

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

cd C: java Welcome

Если же вы находитесь в другой директории, то нужно использовать опцию -cp, после которой указать путь до каталога, где размещена запускаемая программа. А далее указать запускаемый файл без расширения .class:

java -cp C: Welcome

Как видно из скриншота, командная строка находится в папке C:WINDOWSsystem32. Файл, который нам нужно запустить, находится в папке C: (корень диска). Мы указываем после ключа -cp папку C:, а затем пишем имя файла программы без расширения – Welcome.

Аналогично нужно поступать в Linux. Пример команды:

java -cp /home/mial/ Welcome

Ошибка Main method not found in class

Если при запуске вы столкнулись с ошибкой:

Error: Main method not found in class Welcome, please define the main method as: public static void main(String[] args) or a JavaFX application class must extend javafx.application.Application

Это означает, что вы не указали метод main, либо написали слово неправильно (например, Main вместо main).

Особенности компиляции и запуска Java программ в Windows

Команда «javac» не является внутренней или внешней командой, исполняемой программой или пакетным файлом

Эта ошибка рассмотрена чуть выше. Для установки и настройки переменных окружения в Windows обратитесь к инструкции «Установка Java (JDK) в Windows».

Проблема с кодировкой в Java программах в командной строке Windows

Если вы написали программу, которая выводит кириллицу в консоль:

public class Welcome < public static void main(String[] args) < System.out.println(«Привет из Java!»); >>

А в качестве результата получили крякозяблы:

Значит кодировка, в которой выводит строки ваша программа, отличается от кодировки командной строки Windows.

Имеется несколько способов исправить эту проблему. Кстати, если для запуска консольных программ Java вы используете NetBeans, то он выводит строки в правильной кодировке. В Linux эта проблема также отсутствует. Если вам нужно поменять кодировку на время, то вы можете выполнить следующие команды:

REM change CHCP to UTF-8 CHCP 65001 CLS

Проверь себя:

  1. Какое расширение имеют файлы с исходным кодом Java, и какое расширение у файлов с байткодом Java?
  2. Что принимает на входе и что выдаёт на выходе Java компилятор?
  3. Какой командой компилируется программа Java?
  4. Какой командой запускается программа Java?
  5. Что такое JVM?
  6. Может ли Java быть запущена на любой машине. Что необходимо для запуска Java на компьютере?

Источник: java9.ru

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