it-swarm.com.ru

Как скомпилировать и запустить C / C ++ в консоли Unix / Mac?

Как я могу скомпилировать/запустить C или C++ в консоли Unix или терминале Mac?

(Я знаю это, забудь это, и заново изучи это. Время, чтобы записать это.)

126
P-A

Если это простая программа с одним исходным кодом:

make foo

где исходный файл - foo.c или foo.cpp и т. д.

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

Запуск только что созданного исполняемого файла аналогичен запуску любой программы, но чаще всего вам потребуется указывать путь к исполняемому файлу, поскольку оболочка будет искать только то, что находится в $PATH, чтобы найти исполняемые файлы, и чаще всего это не включает текущий каталог. (.).

Итак, чтобы запустить встроенный исполняемый файл foo:

./foo
169
camh
gcc main.cpp -o main.out  
./main.out
104
Andrey Neverov

Это команда, которая работает на всех Unix-машинах ... Я использую ее в Linux/Ubuntu, но она работает и в OS X. Введите следующую команду в Terminal.app.

$ g++ -o lab21 iterative.cpp

-o это буква O не ноль

lab21 будет вашим исполняемым файлом

iterative.cpp ваш файл C++

После запуска этой команды введите в терминале следующее для запуска вашей программы:

$ ./lab21
65
Komengem

Два шага для меня:

первый:

make foo

затем:

./foo
31
Victor Augusto

Выполнение всех приложений в среде Unix (Linux, Mac OS X, AIX и т.д.) Зависит от пути поиска исполняемого файла.

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

echo $ PATH

В Mac OS X (по умолчанию) будет отображаться следующий путь поиска, разделенный двоеточиями:

/ USR/бен:/бен:/USR/SBIN:/SBIN:/USR/местные/бен:/USR/X11/бен

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

cat mytextfile.txt

Это запускает /bin/cat и отображает mytextfile.txt на терминал.

Для запуска любой другой команды, которой нет в пути поиска исполняемого файла, необходимо указать путь к исполняемому файлу. Допустим, у меня есть исполняемый файл MyProgram в моем домашнем каталоге в Mac OS X, и я могу полностью описать его следующим образом:

/ Users/оливер/MyProgram

Если вы находитесь в месте, которое находится рядом с программой, которую вы хотели выполнить, вы можете указать имя с частичным путем. Например, если MyProgram был в каталоге /Users/oliver/MyProject I, и я был в моем домашнем каталоге, я могу квалифицировать имя исполняемого файла следующим образом и заставить его выполнить:

MyProject/MyProgram

Или, скажем, я был в каталоге /Users/oliver/MyProject2 и хотел выполнить /Users/oliver/MyProject/MyProgram Я могу использовать относительный путь, подобный этому, для его выполнения:

../MyProject/MyProgram

Аналогично, если я нахожусь в том же каталоге, что и MyProgram, мне нужно использовать относительный путь "текущий каталог". Текущий каталог, в котором вы находитесь, - это точка, за которой следует косая черта. Например:

./MyProgram

Чтобы определить, в каком каталоге вы сейчас находитесь, используйте команду pwd.

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

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

#!/bin/sh
export PATH=$PATH:~/bin

Здесь символ тильды (~) используется в качестве ярлыка для/Users/oliver. Также обратите внимание, что строка хеш-взрыва (#!) Должна быть первой строкой файла (если она еще не существует). Также обратите внимание, что этот метод требует, чтобы ваша оболочка входа в систему была bash (по умолчанию в Mac OS X и большинстве дистрибутивов Linux). Также обратите внимание, что если вы хотите, чтобы ваши программы, установленные в ~/bin, использовались в предпочтении перед исполняемыми файлами системы, вам следует изменить порядок операторов экспорта следующим образом:

export PATH=~/bin:$PATH
15
orj

Райан, я изменяю это, чтобы быть ответом вместо комментария, так как кажется, что я был слишком кратким. Сделайте все это в "Терминале".

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

  1. Перейдите в каталог, в котором вы сохранили файл * .cpp.

    cd ~/programs/myprograms/
    [.__

  2. Скомпилируйте это

    g++ input.cpp -o output.bin (output.bin может быть любым с любым расширением, на самом деле. bin обычно встречается в unix.)

    Не должно быть НИЧЕГО возвращено, если это было успешно, и это хорошо. Как правило, вы получаете возврат отказов.

    Однако, если вы введете ls, вы увидите список файлов в том же каталоге. Например, вы увидите другие папки, input.cpp и output.bin

  3. Внутри каталога теперь выполните его с помощью ./outbut.bin

10
nerdwaller

Предполагая, что текущий каталог не находится в пути, синтаксис ./[name of the program].

Например, ./a.out

8
P-A

Добавьте следующие, чтобы получить лучшие предупреждения, вы не пожалеете об этом. Если вы можете скомпилировать WISE (предупреждение об ошибке)

- Wall -pedantic -Weffc++ -Werror
7
Nazgob

Компактный способ сделать это может быть:

make foo && ./$_

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

7
markthethomas

Для компиляции программ на C или C++ есть общая команда:

  1. make filename

  2. ./filename

make соберет ваш исходный файл в исполняемый файл с тем же именем. Но если вы хотите использовать стандартный способ, вы можете использовать компилятор gcc для сборки программ на C и g ++ для c ++

Для C:

gcc filename.c

./a.out

Для C++:

g++ filename.cpp

./a.out
5
Yogesh Nogia

Используйте makefile. Даже для очень маленьких (= однофайловых) проектов усилия, вероятно, того стоят, потому что вы можете иметь несколько наборов настроек компилятора для тестирования. Таким образом, отладка и развертывание работают намного проще.

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

2
Konrad Rudolph

Я нашел эту ссылку с указаниями:

http://www.wesg.ca/2007/11/how-to-write-and-compile-c-programs-on-mac-os-x/

В основном вы делаете:

gcc hello.c
./a.out (or with the output file of the first command)
2
Srini Kadamati

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

  1. Если путь к файлу cpp - somePath/fileName.cpp, сначала перейдите в каталог с путем somePath
  2. Чтобы скомпилировать fileName.cpp, введите c ++ fileName.cpp -o fileName
  3. Чтобы запустить программу, введите ./fileName
0
Alper Gur

просто войдите в каталог, в котором находится ваш c/cpp файл.

для компиляции и запуска кода c.

$gcc filename.c
$./a.out filename.c

для компиляции и запуска кода на C++.

$g++ filename.cpp
$./a.out filename.cpp

"$" является символом терминала Mac по умолчанию

0
Shiv Prakash