Как скомпилировать и запустить C / C++ в консоли Unix / Mac-терминале?
Как я могу скомпилировать / запустить c/" class="blnk">C или C++ в консоли Unix или терминале Mac?
(Я знаю это, забываю об этом и снова переучиваю. Пора записать.)
14 ответов
если это простая программа с одним исходным кодом:
make foo
где исходный файл foo.C или ФОО.СРР и т. д.
вам даже не нужен makefile. Make имеет достаточно встроенных правил для создания исходного файла в исполняемый файл с тем же именем, минус расширение.
запуск только что построенного исполняемого файла совпадает с запуском любой программы , но вам чаще всего нужно будет указать путь к исполняемому файлу, поскольку оболочка будет искать только то, что находится в $PATH
найти исполняемые файлы, и чаще всего это не включает текущий каталог (.
).
Итак, чтобы запустить встроенный исполняемый foo
:
./foo
это команда, которая работает на всех Unix-машинах... Я использую его в Linux / Ubuntu, но он также работает в OS X. Введите следующую команду в терминал.app.
$ g++ -o lab21 iterative.cpp
-o
является ли буква O не нулевой
lab21
будет ваш исполняемый файл
iterative.cpp
это файл на языке C++
после выполнения этой команды введите в terminal следующую команду для запуска программы:
$ ./lab21
все выполнение приложений в 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++, вам нужно сделать следующее:
-
перейдите в каталог, в котором вы сохранили *.файл cpp.
cd ~/programs/myprograms/
(~- это ярлык для вашего дома, т. е. / Users/Ryan/programs/ myprograms/, замените место, которое вы фактически использовали.) -
компиляции это
g++ input.cpp -o output.bin
(выходной.bin может быть чем угодно с любым расширением, на самом деле. bin просто распространен в unix.)не должно быть ничего возвращено, если это было успешно, и это ОК. Обычно вы получаете прибыль от неудач.
однако, если вы наберете
ls
, вы увидите список файлов в той же директории. Например, вы увидите другие папки, ввод.cpp и выход.бин внутри каталога, теперь выполните его с
./outbut.bin
добавить следующие, чтобы получить лучшие предупреждения,вы не пожалеете. Если вы можете, скомпилируйте WISE (предупреждение-ошибка)
- Wall -pedantic -Weffc++ -Werror
компактный способ сделать это может быть:
make foo && ./$_
приятно иметь однострочный, так что вы можете просто повторно запустить исполняемый файл снова легко.
для компиляции программ на C или C++ существует общая команда:
make filename
./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