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

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

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

14 ответов


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

make foo

где исходный файл foo.C или ФОО.СРР и т. д.

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

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

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

./foo

gcc main.cpp -o main.out  
./main.out

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

$ g++ -o lab21 iterative.cpp

-o является ли буква O не нулевой

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

iterative.cpp это файл на языке C++

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

$ ./lab21

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

первый:

make foo

затем:

./foo

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

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

echo $PATH

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

/usr/Бен:/ОГРН: выполнить/sbin: файл/sbin:/usr/местные/Бен: в/usr/Х11/ОГРН

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

cat mytextfile.txt

это /bin/cat и отображает mytextfile.txt в терминале.

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

/ пользователи / Оливер / MyProgram

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

MyProject / MyProgram

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

../ MyProject / MyProgram

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

./Иногда

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

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

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

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

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

export PATH=~/bin:$PATH

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

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

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

    cd ~/programs/myprograms/
    (~- это ярлык для вашего дома, т. е. / Users/Ryan/programs/ myprograms/, замените место, которое вы фактически использовали.)

  2. компиляции это

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

    не должно быть ничего возвращено, если это было успешно, и это ОК. Обычно вы получаете прибыль от неудач.

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

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


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

./a.out

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

- Wall -pedantic -Weffc++ -Werror

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

make foo && ./$_

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


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

  1. make filename

  2. ./filename

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

Для C:

gcc filename.c

./a.out

Для C++:

g++ filename.cpp

./a.out

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

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


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

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)

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

для компиляции и выполнения кода.

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

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

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

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


запуск a .C файл с помощью терминала представляет собой двухэтапный процесс. Первый шаг-ввести gcc в терминал и отбросить .C файл на терминал, а затем нажмите Enter:

username$ gcc /Desktop/test.c 

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

username$ ~/a.out