Как скомпилировать и запустить C/C++ на консоли Unix/терминале Mac?
Вопрос
Как я могу скомпилировать/запустить C или C++ в консоли Unix или терминале Mac?
(Я знаю это, забываю и заново изучаю.Пора это записать.)
Решение
Если это простая программа с одним исходным кодом:
make foo
где исходный файл - foo.c или foo.cpp и т. д.
Вам даже не нужен make-файл. Make имеет достаточно встроенных правил, чтобы встроить ваш исходный файл в исполняемый файл с тем же именем, но без расширения.
Запуск только что созданного исполняемого файла аналогичен запуску любой программы, но чаще всего вам потребуется указывать путь к исполняемому файлу, поскольку оболочка будет искать только то, что находится в $ PATH
, чтобы найти исполняемые файлы. и чаще всего это не включает текущий каталог (.
).
Итак, чтобы запустить встроенный исполняемый файл foo
:
./foo
Другие советы
gcc main.cpp -o main.out
./main.out
Это команда, которая работает на всех компьютерах Unix ... Я использую ее в Linux / Ubuntu, но она работает и в OS & nbsp; X. Введите следующую команду в Terminal.app .
$ g++ -o lab21 iterative.cpp
-o
это буква O не ноль
lab21
будет вашим исполняемым файлом
iterative.cpp
- ваш файл C ++
После запуска этой команды введите в терминале следующую команду для запуска вашей программы:
$ ./lab21
Два шага для меня:
первый:
make foo
затем:
./foo
Выполнение любого приложения в среде Unix (Linux, Mac OS X, AIX и т. д.) зависит от пути поиска исполняемого файла.
Вы можете отобразить этот путь в терминале с помощью этой команды:
эхо $PATH
В Mac OS X (по умолчанию) будет отображаться следующий путь поиска, разделенный двоеточиями:
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
Таким образом, любой исполняемый файл в перечисленных каталогах можно запустить, просто введя его имя.Например:
кот mytextfile.txt
Это работает /bin/cat
и отображает mytextfile.txt на терминале.
Для запуска любой другой команды, которой нет в пути поиска исполняемого файла, необходимо указать путь к исполняемому файлу.Предположим, у меня в домашнем каталоге Mac OS X есть исполняемый файл MyProgram. Я могу его полностью квалифицировать следующим образом:
/Пользователи/Оливер/MyProgram
Если вы находитесь рядом с программой, которую хотите выполнить, вы можете уточнить имя, указав частичный путь.Например, если MyProgram
был в каталоге /Users/oliver/MyProject
Когда я находился в своем домашнем каталоге, я могу указать имя исполняемого файла следующим образом и запустить его:
МойПроект/МояПрограмма
Или скажем, я был в каталоге /Users/oliver/MyProject2
и я хотел выполнить /Users/oliver/MyProject/MyProgram
Я могу использовать такой относительный путь для его выполнения:
../МойПроект/МояПрограмма
Аналогично, если я нахожусь в том же каталоге, что и MyProgram
Мне нужно использовать относительный путь «текущего каталога».Текущий каталог, в котором вы находитесь, обозначается точкой, за которой следует косая черта.Например:
./Моя программа
Чтобы определить, в каком каталоге вы сейчас находитесь, используйте команду pwd
команда.
Если вы обычно размещаете программы в том месте на жестком диске, которое хотите запускать без необходимости уточнять их имена.Например, если в вашем домашнем каталоге есть каталог «bin» для регулярно используемых сценариев оболочки других программ, возможно, будет разумно изменить путь поиска исполняемых файлов.
Это можно легко сделать, создав или отредактировав существующий .bash_profile
файл в вашем домашнем каталоге и добавьте строки:
#!/bin/sh
export PATH=$PATH:~/bin
Здесь символ тильды (~) используется как ярлык для /Users/oliver.Также обратите внимание, что строка хеш-банга (#!) должна быть первой строкой файла (если она еще не существует).Также обратите внимание, что для этого метода требуется, чтобы ваша оболочка входа была bash (по умолчанию в Mac OS X и большинстве дистрибутивов Linux).Также обратите внимание, что если вы хотите, чтобы ваши программы были установлены в ~/bin
Чтобы использовать его вместо системных исполняемых файлов, вам следует изменить порядок оператора экспорта следующим образом:
export PATH=~/bin:$PATH
Райан, я изменяю это, чтобы быть ответом вместо комментария, так как кажется, что я был слишком краток Сделайте все это в «Терминале».
Чтобы использовать компилятор G ++, вам нужно сделать это:
<Ол>Перейдите в каталог, в котором вы сохранили файл * .cpp.
cd ~ / Programs / MyPrograms /
(~ - это ярлык для вашего дома, то есть / Users / Ryan / Programs / MyPrograms /, замените место, которое вы фактически использовали.)
Скомпилируйте его
g ++ input.cpp -o output.bin
(output.bin может быть любым с любым расширением, на самом деле. bin обычно встречается в unix.)
НИЧЕГО не должно быть возвращено, если оно прошло успешно, и это хорошо . Как правило, вы получаете возврат отказов.
Однако, если вы введете ls
, вы увидите список файлов в том же каталоге. Например, вы увидите другие папки, input.cpp и output.bin
Внутри каталога теперь выполните его с помощью ./ outbut.bin
Предполагая, что текущий каталог не находится в пути, синтаксис: ./ [название программы]
.
Например, ./ a.out
Добавьте следующее, чтобы получить лучшие предупреждения, вы не пожалеете об этом. Если вы можете, скомпилируйте WISE (предупреждение об ошибке)
- Wall -pedantic -Weffc++ -Werror
Компактный способ сделать это может быть:
make foo && ./ Компактный способ сделать это может быть:
<*>
Приятно иметь однострочную версию, так что вы можете просто легко перезапустить свой исполняемый файл.
Приятно иметь однострочную версию, так что вы можете просто легко перезапустить свой исполняемый файл.
Для компиляции программ на C или C ++ есть общая команда:
<Ол> сделать имя файла
<код> ./ имя_файла код>
make соберет ваш исходный файл в исполняемый файл с тем же именем. Но если вы хотите использовать стандартный способ, вы можете использовать компилятор gcc для сборки программ на C & amp; g ++ для c ++
Для C:
gcc filename.c
./a.out
Для C ++:
g++ filename.cpp
./a.out
Используйте makefile
. Даже для очень маленьких (= однофайловых) проектов усилия, вероятно, того стоят, потому что вы можете иметь несколько наборов настроек компилятора для тестирования. Отладка и развертывание работают намного проще.
Прочтите make
руководство . На первый взгляд это кажется довольно длинным, но большинство разделов вы можете просто просмотреть. В общем, это заняло у меня несколько часов и сделало меня гораздо более продуктивным.
Я нашел эту ссылку с указаниями:
Чтобы скомпилировать и запустить исходный код cpp из терминала Mac, необходимо сделать следующее:
<Ол>Запуск файла .C с помощью терминала является двухэтапным процессом. Первым делом введите gcc в терминале, перетащите файл .C в терминал и нажмите Enter :
username$ gcc /Desktop/test.c
На втором шаге выполните следующую команду:
username$ ~/a.out