Одним из самых мощных современных кроссплатформенных компиляторов языка C++ является свободно-распространяемый компилятор g++ . Для его установки в debian-подобных ОС семейства Linux (Debian, Ubuntu, Mint и их клоны) достаточно выполнить команду терминала apt-get install g++ с правами суперпользователя (администратора) или воспользоваться менеджером пакетов synaptic .
Установка компилятора g++ в ОС семейства Windows несколько сложнее, поэтому рассмотрим этот процесс более подробно.
- На сайте mingw.org переходим в раздел Download (Загрузки), в появившемся окне щёлкаем по ссылке Download mingw-get-setup.exe (рис. A.1). Загружаем установочный файл и запускаем его.
- На первом этапе установки необходимо выбрать команду Install (см. рис. A.2), затем папку для установки (рис. A.3).
- После этого начнётся процесс доустановки инсталлятора (рис. A.4).
- Далее выбираем компиляторы для установки ( C++, Fortran, Ada ) (рис. A.5) и ждём пока будут скачаны и установлены необходимые компиляторы. После завершения процесса установки компиляторы (в нашем случае компилятор C++ ) готовы к использованию. Но для вызова их (из командной строки Windows, из текстового редактора Geany) необходимо указывать полное имя файла с компилятором. При установке компилятора C++ в стандартный каталог C:MinGW — полное имя компилятора C++ будет таким: C:MinGWbing++ . Для того, чтобы каждый раз не писать полное имя компилятора, можно добавить путь C:MinGWbin в список путей системной переменной Path .
- Для изменения значения системной переменной Path необходимо в панели управления выбрать Система -> Дополнительные параметры системы -> Дополнительно -> Переменные среды -> Системные переменные -> Path -> Изменить. В открывшемся диалоговом окне добавить путь C:MinGWbin .
How to Run C/C++ program In VS Code Terminal | Unable to Write Input Text in Output Console
увеличить изображение
Рис. A.1. Окно загрузки mingw.
После перезагрузки ОС Windows для обращения к компилятору достаточно будет указывать его имя — g++ .
Таким образом, в ОС Linux для работы с компилятором в командной строке необходимо запустить Терминал , а в ОС Windows – командную строку. После чего работа с компилятором g++ с ОС Windows и Linux идентична.
Рассмотрим опции компилятора командной строки, необходимые для компиляции и запуска простейших программ.
Для того, чтобы создать исполняемый файл из текста программы на C++ , необходимо выполнить команду
g++ name.cpp
Здесь name.cpp — имя файла с текстом программы. В результате будет создан исполняемый файл со стандартным именем a.out. Для того, чтобы создать исполняемый файл с другим именем, необходимо выполнить команду
g++ -o nameout name.cpp
Здесь name.cpp — имя файла с текстом программы, nameout — имя исполняемого файла.
При использовании компилятора g++ после компиляции программы автоматически происходит компоновка программы ( запуск компоновщика make). Чтобы исключить автоматическую компоновку программы, следует использовать опцию -c. В этом случае команда будет иметь вид g++ -c name.cpp
Основы работы с терминалом за 20 минут!
Рис. A.2. Первое окно установки mingw.
Рис. A.3. Выбор папки для установка компилятора.
Технология работы с компилятором g++ может быть такой: набираем текст программы в стандартном текстовом редакторе, потом в консоли запускаем компилятор , после исправления синтаксических ошибок запускаем исполняемый файл . После каждого изменения текста программы надо сохранить изменения в файле на диске, запустить компилятор , и только после этого запускать программу ( исполняемый файл ). Очень важно не забывать сохранять текст программы, иначе при запуске компилятора будет компилироваться старая версия текста программы.
Рис. A.4. Загрузка инсталлятора.
увеличить изображение
Рис. A.5. Выбор устанавливаемых компиляторов.
Компилятор g++ эффективен при разработке больших комплексов программ, он позволяет собирать приложения из нескольких файлов, создавать библиотеки программ. Рассмотрим процесс создания и использования библиотеки решения задач линейной алгебры (см. п. 6.4, задачи 6.10 — 6.12):
int SLAU(double **matrica_a, int n, double *massiv_b, double *x) — функция решения системы линейных алгебраических уравнений;
int INVERSE(double **a, int n, double **y) — функция вычисления обратной матрицы;
double determinant(double **matrica_a, int n) — функция вычисления определителя.
Для создания библиотеки создадим заголовочный файл slau.h и файл slau.cpp , в который поместим тексты всех трёх функций решения задач линейной алгебры.
Текст файла slau1.h:
int SLAU( double ** matrica_a, int n, double *massiv_b, double *x ); int INVERSE( double **a, int n, double **y ); double determinant ( double ** matrica_a, int n );
Текст файла slau1.cpp :
#include int SLAU( double ** matrica_a, int n, double *massiv_b, double *x ) < int i, j, k, r; double c,M, max, s; double **a, *b; a=new double * [ n ]; for ( i =0; imax) < max=fabs ( a [ i ] [ k ] ); r= i; >for ( j =0; j c=b [ k ]; b [ k ]=b [ r ]; b [ r ]= c; for ( i=k+1; i > if ( a [ n -1 ] [ n-1]==0) if ( b [ n-1]==0) return -1; else return -2; else < for ( i=n-1; i >=0; i —) < for ( s =0, j= i +1; jreturn 0; > > int INVERSE( double **a, int n, double **y ) < int i, j, res; double *b, *x; b=new double [ n ]; x=new double [ n ]; for ( i =0; iif ( res !=0) return -1; else return 0; > double determinant ( double ** matrica_a, int n ) < int i, j, k, r; double c,M, max, s, det =1; double **a; a=new double * [ n ]; for ( i =0; imax) < max=fabs ( a [ i ] [ k ] ); r= i; >if ( r !=k ) det=_det; for ( j =0; j for ( i=k+1; i for ( i =0; i
В качестве тестовой задачи напишем главную функцию, которая предназначена для решения системы линейных алгебраических уравнений.
#include #include //Подключение личной библиотеки slau #include » slau1 .h » using namespace std; int main ( ) < int result, i, j,N; double **a, *b, *x; //Ввод размерности системы. cout>N; //Выделение памяти для матрицы правых частей и вектора свободных членов. a=new double * [N ]; for ( i =0; i>a [ i ] [ j ]; cout>b [ i ]; //Вызов функции решения СЛАУ методом Гаусса из библиотеки slau.h result=SLAU( a,N, b, x ); if ( result ==0) < //Вывод массива решения. coutelse if ( result ==-1) cout
Теперь необходимо из этих текстов создать работающее приложение . Рассмотрим это поэтапно.
- Компиляция библиотеки slau1.h с помощью команды g++ -c slau1.cpp .
- Компиляция главной функции main.cpp с помощью команды g++ -c main.cpp .
- Создание исполняемого файла с именем primer из двух откомпилированных файлов main.o и slau1.o с помощью команды g++ main.o slau1.o -o primer .
- Запуск исполняемого файла.
После разработки библиотеки линейной алгебры (пример) slau1 , можно использовать её в различных программах при вычислении определителя, обратной матрицы и решения систем линейных алгебраических уравнений.
При разработке программ с большим количеством вычислений, компилятор g++ позволяет оптимизировать программы по быстродействию. Для получения оптимизированных программ можно использовать ключи -O0, -O1, -O2, -O3, -Os :
- при использовании ключа -O0 оптимизация отключена, достигается максимальная скорость компиляции, опция задействована по умолчанию;
- при использовании ключа «мягкой» оптимизации -O1 происходит некоторое увеличение времени компиляции, этот ключ оптимизации позволяет одновременно уменьшать занимаемую программой память и уменьшить время выполнения программы;
- при использовании ключа -02 происходит существенное уменьшение времени работы программы, при этом не происходит увеличение памяти, занимаемой программой, не происходит развёртка циклов и автоматическое встраивание функций;
- ключ «агрессивной» оптимизации -O3 нацелен в первую очередь на уменьшение времени выполнения программы, при этом может произойти увеличение объёма кода и времени компиляции, в этом случае происходит развёртка циклов и автоматическое встраивание функций;
- ключ -Os ориентирован на оптимизацию размера программы, включаются те опции из набора -O2 , которые обычно не увеличивают объём кода, применяются некоторые другие оптимизации, направленные на снижение его объёма.
Для разработки программ на различных языках программирования можно использовать текстовый редактор Geany . Редактор Geany входит в репозитории большинства дистрибутивов Linux, его установка осуществляется стандартным для вашего дистрибутива образом (в debian-подобных ОС с помощью команды apt-get install geany ). Для установки его в Windows необходимо скачать со страницы http://www.geany.org/Download/Releases инсталляционный файл и установить программу стандартным способом.
Разработка программ с использованием Geany более эффективна. Окно Geany представлено на рис. A.6.
Последовательно рассмотрим основные этапы разработки программы с использованием Geany .
- Необходимо создать шаблон приложения на C/C++ (или другом языке программирования) с помощью команды Файл -> Создать из шаблона -> main.cxx. После чего необходимо ввести текст программы и сохранить его.
- Для компиляции и запуска программы на выполнение служит пункт меню Сборка. Для компиляции программы следует использовать команду Сборка -> Скомпилировать ( F8 ). В этом случае будет построен объектный код программы (файл с расширением .o или .obj ). Для создания исполняемого кода программы служит команда Сборка -> Собрать ( Shift+F9 ). Для запуска программы следует выполнить команду Сборка -> Выполнить (F5).
Параметры компилятора определяются автоматически после выбора шаблона ( Файл -> Создать из шаблона). Однако команды компиляции и сборки по умолчанию можно изменить, используя команду Сборка -> Установить параметры сборки (см. рис. A.7). Здесь %f — имя компилируемого файла, %e — имя файла без расширения.
Источник: intuit.ru
терминала — Как запустить программу на C в Mac OS X с помощью Terminal?
«С-программа» не должна запускаться. Он предназначен для компиляции в «исполняемую» программу, которую затем можно запускать с вашего терминала. Вам нужен compiler для этого.
Да, и ответ на ваш последний вопрос («Почему?») Заключается в том, что для файла, который вы пытаетесь выполнить, не установлены права на исполняемый файл (что компилятор обычно делает автоматически с двоичным файлом, что позволяет сделать вывод, что вы пытались запускать исходный код как скрипт, отсюда и подсказка при компиляции.)
Я новичок в C. Вот мой «Привет, мир!» программа.
#include int main(void) printf(«Hello, world!n»); return 0; >
После того, как я пытаюсь запустить его с помощью терминала, он говорит:
MacBook-Pro-MacBook:~ macbook$ /Users/macbook/Desktop/peng/Untitled1 -bash: /Users/macbook/Desktop/peng/Untitled1: Permission denied MacBook-Pro-MacBook:~ macbook$
1) Сначала вам нужно установить компилятор GCC для Mac (Google его и установить его из сети)
2) Запомните путь, где вы храните файл C
3) Зайдите в Терминал и установите путь
например, если вы сохранили в новой папке ProgramC в папке документов
then type this in Terminal cd Document cd ProgramC
4) Теперь вы можете видеть, что находитесь в папке, в которой вы сохранили свою C-программу (пусть вы сохранили свою программу как Hello.c)
5) Теперь скомпилируйте вашу программу
make Hello ./hello
Вам нужно установить исполняемое разрешение для файла ( Untitled1 ).
chmod a+x Untitiled1
Для компиляции программы ac на вашей последней macOS просто наберите в терминале следующее после сохранения файла с расширением .c и достижения пути к файлу:
После того, как вы проверили все ошибки после компиляции (если есть), введите следующую команду для выполнения кода:
Эти команды протестированы на macOS Mohave и работают отлично, ура!
- открытый терминал
- введите в терминале: nano ; который является текстовым редактором, доступным для терминала. когда ты это сделаешь. что-то вроде этого появится.
- здесь вы можете ввести свою программу на C
- введите control(^) + x -> что означает выход.
- сохранить файл, набрав y чтобы сохранить файл
- напишите имя файла; например, helloStack.c (не забудьте добавить .c )
- когда это появится, введите gcc helloStack.c
- затем ./a.out : это должно дать вам ваш результат!
Сначала сохраните вашу программу как program.c .
Теперь вам нужен компилятор, поэтому вам нужно пойти в App Store и установить Xcode, который является компилятором Apple и инструментами разработки. Как найти App Store ? Выполните «Spotlight Search» , набрав ⌘ Пробел, начните вводить App Store и нажмите Enter, когда он угадает правильно.
App Store выглядит так:
Xcode выглядит так в App Store :
Затем вам нужно установить инструменты командной строки в Терминале . Как запустить Терминал ? Вам нужно выполнить еще один «Spotlight Search» , что означает, что вы набираете ⌘ Пробел и начинаете вводить Terminal и нажимаете Enter, когда он угадывает Terminal .
Теперь установите инструменты командной строки следующим образом:
xcode-select —install
Затем вы можете скомпилировать свой код, просто запустив gcc как в следующей строке, без необходимости запускать большой, уродливый графический интерфейс разработки программного обеспечения под названием Xcode :
gcc -Wall -o program program.c
Примечание . В новых версиях OS X вместо gcc вы бы использовали clang , например так:
clang program.c -o program
Тогда вы можете запустить его с:
./program Hello, world!
Если ваша программа на C ++, вы, вероятно, захотите использовать одну из следующих команд:
clang++ -o program program.cpp g++ -std=c++11 -o program program.cpp g++-7 -std=c++11 -o program program.cpp
Сначала убедитесь, что вы исправили свою программу:
#include int main(void) printf(«Hello, world!n»); //printf instead of pintf return 0; >
Сохраните файл как HelloWorld.c и введите в терминале:
gcc -o HelloWorld HelloWorld.c
После этого просто запустите исполняемый файл так:
./HelloWorld
Вы должны увидеть Hello World!
чтобы скомпилировать c-программу в macos просто следуйте инструкциям ниже
используя команду cd в терминале, перейдите в местоположение вашей c-программы
затем введите команду ниже
сделать имя файла
затем введите
./имя файла
Работа в 2019 г. По умолчанию вы можете скомпилировать ваш name.c с помощью терминала.
cc name.c
и если вам нужно запустить, просто напишите
./name.out
Источник: code-examples.net
Как скомпилировать и запустить C / C ++ в консоли Unix / Mac?
где исходный файл — foo.c или foo.cpp и т.д. Вам даже не нужен make файл. Make имеет достаточно встроенных правил для создания исходного файла в исполняемый файл с таким же именем, минус расширение.
camh 21 окт. 2008, в 09:14
Поделиться
Я не осознавал, что встроенные правила распространяются на цели, указанные при вызове make. Узнал что-то новое сегодня =)
Branan 21 окт. 2008, в 17:04
-bash: make: команда не найдена
Thor Correia 07 окт. 2012, в 19:56
«-bash: make: команда не найдена»
dgig 30 апр. 2014, в 15:20
‘ничего не сделать для main.cpp’
Alex 26 авг. 2014, в 09:51
Это не make main.cpp , а make main .
Craig McMahon 05 янв. 2015, в 15:51
Hlawuleka MAS 16 июль 2016, в 15:36
Показать ещё 4 комментария
gcc main.cpp -o main.out ./main.out
Andrey Neverov 21 окт.
2008, в 09:42
Поделиться
как нуб, у меня было столько горя, что я не включил «./» при выполнении
funk-shun 26 янв. 2011, в 06:00
Cory W. 24 март 2012, в 04:20
-bash: gcc: команда не найдена
Thor Correia 07 окт. 2012, в 19:57
Я использовал «gcc main.cpp -o main.out», и получаю эту ошибку, неопределенные символы для архитектуры x86_64: «std :: __ 1 :: locale :: use_facet (std :: __ 1 :: locale :: id . оказывается, причина в том, что gcc default-links — это libc. при использовании g ++ свяжется с libstdc ++. Так что лучше использовать g ++ main.cpp -o main.out.
Rachel 28 июль 2015, в 03:18
Goldname 08 сен. 2016, в 17:42
Что Undefined symbols for architecture x86_64 , я модифицирую команду следующим образом: gcc -lstdc++ main.cpp -o main.out , и это работает на моем Mac. по ссылке: stackoverflow.com/questions/11852568/…
rotoava 06 март 2018, в 09:08
« `gcc -std = c ++ 11 main.cpp -o main.out` « для компиляции кода c ++ 11
rotoava 07 март 2018, в 09:36
в чем разница между gcc и g ++
Ka-Wa Yip 20 март 2018, в 00:55
Показать ещё 6 комментариев
Это команда, которая работает на всех машинах Unix. Я использую ее в Linux/Ubuntu, но она работает и в OS X. Введите следующую команду в Terminal.app.
$ g++ -o lab21 iterative.cpp
-o — это буква O не ноль
lab21 будет вашим исполняемым файлом
iterative.cpp — ваш файл С++
После запуска этой команды введите в терминал следующую команду:
$ ./lab21
Komengem 24 фев. 2011, в 18:16
Поделиться
Это то, что сработало для меня. Я попробовал другие решения выше без удачи. Спасибо!
nmrichards 16 март 2018, в 06:55
работал для меня, не нужно ничего устанавливать, идеальное решение.
Chander Shakher Ghorela — Guru 03 нояб.
2018, в 05:23
Два шага для меня:
make foo
Victor Augusto 28 июль 2014, в 12:43
Поделиться
Без ./foo не был казнен, спасибо
Alberto Bellini 13 окт.
2014, в 16:41
./foo знаю, как принятый ответ не имеет этой важной команды
Suhaib 11 окт. 2016, в 02:51
camh 13 фев. 2018, в 10:32
Показать ещё 1 комментарий
Все выполнение приложения в среде Unix (Linux, Mac OS X и AIX и т.д.) зависит от исполняемого пути поиска.
Вы можете отобразить этот путь в терминале с помощью этой команды:
В Mac OS X (по умолчанию) отобразится следующий путь поиска с двоеточием:
Таким образом, любой исполняемый файл в перечисленных каталогах может быть запущен просто путем ввода имени. Например:
Выполняется /bin/cat и отображает mytextfile.txt на терминал.
Для запуска любой другой команды, которая не находится в исполняемом пути поиска, требуется, чтобы вы определили путь к исполняемому файлу. Так сказать, у меня был исполняемый файл под названием MyProgram в моем домашнем каталоге на Mac OS X. Я могу полностью квалифицировать его так:
Если вы находитесь в месте, расположенном рядом с программой, которую хотите выполнить, вы можете квалифицировать имя с частичным путем. Например, если MyProgram находился в каталоге /Users/oliver/MyProject , я и я были в моем домашнем каталоге, я могу квалифицировать исполняемое имя, подобное этому, и выполнить его:
Или скажу, что я был в каталоге /Users/oliver/MyProject2 , и я хотел выполнить /Users/oliver/MyProject/MyProgram Я могу использовать относительный путь, подобный этому, для его выполнения:
Аналогично, если я находится в том же каталоге, что и MyProgram , мне нужно использовать относительный путь «текущего каталога». Текущий каталог, в котором вы находитесь, — это символ периода, за которым следует косая черта. Например:
Чтобы определить, в какой директории в данный момент используется команда pwd .
Если вы обычно помещаете программы в место на своем жестком диске, которое вы хотите запустить, не требуя квалификации своих имен. Например, если у вас есть каталог «bin» в вашем домашнем каталоге для регулярно используемых сценариев оболочки других программ, может быть разумным изменить ваш путь к исполняемому файлу.
Это может быть легко путем создания или редактирования существующего файла .bash_profile в вашем домашнем каталоге и добавления строк:
#!/bin/sh export PATH=$PATH:~/bin
Здесь символ тильды (~) используется как ярлык для /Users/oliver. Также обратите внимание, что строка hash bang (#!) Должна быть первой строкой файла (если она еще не существует). Обратите также внимание на то, что для этого метода требуется, чтобы ваша оболочка для входа была bash (по умолчанию для Mac OS X X и большинства дистрибутивов Linux). Также обратите внимание, что если вы хотите, чтобы ваши программы, установленные в ~/bin , были использованы по предпочтению системным исполняемым файлам, вы должны изменить порядок экспорта следующим образом:
export PATH=~/bin:$PATH
Источник: overcoder.net