Как запустить скомпилированный файл linux
Перейти к содержимому

Как запустить скомпилированный файл linux

  • автор:

Как запустить файл из командной строки?

Как запустить файл из командной строки? Когда из Nautilus’а запускаю, то просто два раза щелкаю по нему мышкой, а как из командной строки файл запустить?

Можно выполнить (запустить) файл в командной строке, набрав команду:

sh название-файла

Также можно просто указать имя файла (если он доступен для запуска) и нажать Enter:

./filetorun

Обратите внимание, что перед файлом нужно указать путь до него или, если вы уже находитесь в директории, в которой лежит файл, то перед именем файла нужно поставить «./». Это указывает на то, что вы запускаете файл именно из текущей директории.

Войдите, чтобы ставить лайки мне нравится

войдите, чтобы ставить лайки

LibreBay

Статьи про ОС Ubuntu. Языки программирования Си и C++.
Инструменты разработки и многое другое.

понедельник, 5 декабря 2016 г.

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

ubuntu terminal

Помню, когда я только начинал программировать, у меня возник вопрос: «Как скомпилировать программу на C в Ubuntu?» Для новичков это не легкая задача, как может показаться на первый взгляд.

Мой путь изучения C начался с бестселлера «Брайан Керниган, Деннис Ритчи, Язык программирования C, 2-е издание». Там рассказывается как скомпилировать программу в операционной системе Unix, но этот способ не работает в Linux. Авторы книги выкрутились, написав следующее:

В других системах это процедура будет отличаться. Обратитесь к справочнику или специалисту за подробностями.

Побуду специалистом 🙂 и расскажу в данной статье, как скомпилировать первые программы на C и заодно на C++ в терминале Ubuntu.

Текстовый редактор gedit

Для написания первых программ подойдет обычный, используемый по умолчанию в Ubuntu, текстовый редактор с подсветкой синтаксиса — gedit.

Запуск текстового редактора
Рис. 1. Запуск текстового редактора.

Первой программой по традиции является «Hello, World!», выводящее приветствие на экран:

#include int main(int argc, char **argv)

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

Программа hello, World!
Рис. 2. Программа hello, World.

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

Теперь запускаем терминал, можно через Dash, а можно с помощью горячих клавиш + + . Здесь в начале установим инструменты сборки, куда входят необходимые компиляторы gcc для языка C и g++ для языка C++:

sudo apt install build-essential

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

Далее в терминале нам необходимо перейти в директорию, куда сохранили файл с текстом программы. Перемещение выполняется командой cd (англ. change directory — изменить каталог). Чтобы воспользоваться командой в начале пишется cd , затем через пробел путь , куда нужно перейти.

Для перехода на рабочий стол, команда будет следующей:

cd ~/Рабочий\ стол

Обратите внимание на символ обратной косой черты \ в имени директории Рабочий стол . Обратная косая экранирует пробел, и сообщает команде cd , что пробел и следующие за ним символы являются частью имени. Символ ~ в начале пути обозначает путь до домашней папки пользователя.

Для просмотра содержимого директории применяется команда ls (сокращение от англ. list).

Работа в терминале
Рис. 3. Работа в терминале.

Команда компиляции для программы на C выглядит следующим образом:

gcc -Wall -o hello hello.c
  • gcc — компилятор для языка программирования C;
  • -Wall — ключ вывода всех предупреждений компилятора;
  • -o hello — с помощью ключа -o указывается имя выходного файла;
  • hello.c — имя нашего исходного файла, который компилируем.

В завершение запустим hello , вводом имени программы с префиксом ./ :

./hello

Префикс ./ сообщает терминалу о необходимости выполнить программу с заданным именем в текущем каталоге. (Точка — это условное название текущего каталога.)

Работа в терминале, продолжение
Рис. 4. Работа в терминале, продолжение.

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

Программы на C++ компилируются аналогично, как и программы на C. «Hello, World!» на C++ можно написать так:

#include int main(int argc, char **argv)

Сохраняем текст программы в файл под именем hello2.cpp . Таким образом, команда компилирования будет иметь вид:

g++ -Wall -o hello2 hello2.cpp

Для запуска результата вводим в терминале:

./hello2

Заключение

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

  • Иванов Н. Н. — Программирование в Linux. Самоучитель. — 2-е издание;
  • Нейл Метьэ, Ричард Стоунс — Основы программирования в Linux: Пер. с англ. — 4-е издание;
  • Колисниченко Д. Н. — Разработка Linux-приложений.

Запуск бинарника, скомпилированного на другой машине

вопросы: на что он ругается (файл не модифицирован)? надо прикрутить какие-то библиотеки? как их вычислить? есть ли хоть какая-нибудь вероятность добиться выполнения приложения на том, что имею? как?

заранее благодарю за помощь!

sa174
01.09.10 13:42:50 MSD

проблема: при попытке запуска получаю сообщение: «Нет такого файла или каталога»

Бинарник исполняемый? chmod a+x бинарник

надо прикрутить какие-то библиотеки? как их вычислить?

vga ★★
( 01.09.10 13:47:51 MSD )
Ответ на: комментарий от vga 01.09.10 13:47:51 MSD

>Бинарник исполняемый? chmod a+x бинарник

насколько помню (дело было ночью), так же выругался. проверю вечером.

sa174
( 01.09.10 13:50:42 MSD ) автор топика

А как насчет классической грабли с рабочим каталогом?

anonymous
( 01.09.10 14:10:20 MSD )
Ответ на: комментарий от sa174 01.09.10 13:50:42 MSD

>насколько помню (дело было ночью), так же выругался. проверю вечером.

Тогда стоит попробовать ‘objdump -x бинарник | grep NEEDED’ и проверить наличие библиотек вручную.

Если же бинарник требует какой-то файл или библиотеку через dlopen() в рантайме, то должен помочь strace.

Sion
( 01.09.10 14:12:17 MSD )

>при попытке запуска получаю сообщение: «Нет такого файла или каталога»

Отсюда поподробнее, как именно запускаешь?

novitchok ★★★★★
( 01.09.10 14:14:04 MSD )
Ответ на: комментарий от anonymous 01.09.10 14:10:20 MSD

>А как насчет классической грабли с рабочим каталогом?

с этого места поподробнее, если можно

sa174
( 01.09.10 14:15:52 MSD ) автор топика
Ответ на: комментарий от novitchok 01.09.10 14:14:04 MSD

>Отсюда поподробнее, как именно запускаешь?

�� Как скомпилировать и запустить программы на C, C++ в Linux

В этом кратком руководстве объясняется, как компилировать и запускать программы на C / C ++ в операционной системе GNU / Linux.

Если вы студент или новый пользователь Linux, пришедший с платформы Microsoft, то вам может быть интересно, как запускать программы на C или C ++ в дистрибутиве Linux.

Потому что компиляция и запуск кода на платформах Linux немного отличается от Windows. Давайте начнем, не так ли?

Настройка среды разработки

Как вы, возможно, уже знаете, нам нужно установить необходимые инструменты и компиляторы для запуска кода, верно?

Средства разработки включают в себя все необходимые приложения, такие как компиляторы GNU GCC C / C ++, make, отладчики, справочные страницы и другие компоненты, которые необходимы для компиляции и сборки нового программного обеспечения, пакетов и т. д.

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

$ whereis gcc
$ which gcc
$ gcc -v

Эти команды отобразят путь установки и версию компилятора gcc.

Компиляция и запуск программ на C, C ++ на Linux

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

Напишите свой код / программу в вашем любимом редакторе CLI / GUI.

Я собираюсь написать свою программу на C, используя редактор nano.

$ nano itisgood.c

Примечание: вам нужно использовать расширение .c для программ на C или .cpp для программ на C ++.

Скопируйте / вставьте следующий код:
#include int main()
Нажмите Ctrl + O и Ctrl + X, чтобы сохранить и выйти из файла.
Чтобы скомпилировать программу, запустите:

$ gcc itisgood.c -o itisgood
$ cc itisgood.c -o itisgood

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

Вы должны исправить их, чтобы продолжить.

Если ошибки нет, компилятор успешно сгенерирует исполняемый файл с именем itisgood в текущем рабочем каталоге.

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

$ ./itisgood

Вы увидите вывод, как показано ниже:

Welcome To itisgood.ru!

Чтобы скомпилировать несколько исходных файлов (например, source1 и source2) в исполняемый файл, запустите:

$ gcc source1.c source2.c -o executable

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

$ gcc source.c -Wall -Og -o executable

Чтобы скомпилировать исходный код в инструкции ассемблера:

$ gcc -S source.c

Чтобы скомпилировать исходный код без ссылок:

$ gcc -c source.c

Приведенная выше команда создаст исполняемый файл с именем source.o.

Если ваша программа содержит математические функции:

$ gcc source.c -o executable -lm

Для более подробной информации обратитесь к справочным страницам.

$ man gcc

Компиляция и запуск программ C ++

Напишите свою программу на C ++ в любом редакторе по вашему выбору и сохраните ее с расширением .cpp.

Вот простая программа на C ++.

$ cat itisgood.cpp

#include int main()

Чтобы скомпилировать эту программу C ++ в Linux, просто запустите:

$ g++ itisgood.cpp -o itsigood

Если ошибок не было, вы можете запустить эту программу C ++ под Linux, используя команду:

$ ./itisgood

Вы увидите вывод, как показано ниже:

Welcome To itisgood.ru!

В качестве альтернативы, мы можем скомпилировать вышеуказанную программу на C ++, используя команду «make», как показано ниже.

$ make itisgood

Я не использовал расширение .cpp в приведенной выше команде для компиляции программы.

Нет необходимости использовать расширение для компиляции программ на C ++ с помощью команды make.

$ ./itisgood Welcome To itisgood.ru!

Для более подробной информации обратитесь к справочным страницам.

$ man g++

Надеюсь все было достаточно просто и понятно! ��

itisgood

previous post

�� Как исправить ошибку «repository is not valid yet»
�� Как остановить запросы с пустым или неправильным заголовком хоста
You may also like

�� Как настроить базовый DHCP-сервер

�� Как расширить или увеличить размер диска виртуальной.

�� Как определить точку монтирования для конкретного файла.

�� Копирование файлов на Linux с помощью строки.

�� Как отобразить содержимое каталога, отсортированное по времени

�� Настройка уведомлений по электронной почте для отчетов.

Подключение интернет-магазина к CDEK Pay

�� Как вывести список USB-устройств на Linux

Настройка доступа к данным на сервере

�� Как узнать шлюз по умолчанию

Leave a Comment Cancel Reply

• Свежие записи

  • Механизмы и мотивации в накрутке голосований в опросах Телеграм
  • �� Smart Ear — проект развития компьютерного слуха
  • Как автоматизировать бухучет: обзор ПО для компаний разного масштаба
  • Лучшие каналы продвижения товаров и привлечения клиентов в 2023 году: экспертные рекомендации
  • Питание при проблемах ЖКТ: как правильно построить рацион и облегчить симптомы
  • �� Как настроить базовый DHCP-сервер
  • �� Различия между пакетными менеджерами YUM и DNF
  • �� Как уменьшить размер тома данных Docker в Docker Desktop на Windows
  • �� Как расширить или увеличить размер диска виртуальной машины KVM (VM)
  • �� Как определить точку монтирования для конкретного файла или каталога

• Категории

• Теги

• itsecforu.ru

• Страны посетителей

IT is good

В современном мире социальных медиа и мессенджеров, где каждый голос и мнение имеют значение, накрутка голосований в опросах Телеграм стала актуальной темой. Телеграм — одна…

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

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *