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

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

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

Ответ 1

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

make foo

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

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

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

Итак, для запуска встроенного исполняемого файла foo:

./foo

Ответ 2

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

Ответ 3

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

$ g++ -o lab21 iterative.cpp

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

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

iterative.cpp - ваш файл С++

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

$ ./lab21

Ответ 4

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

первый:

make foo

то

./foo

Ответ 5

Все выполнение приложения в среде 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, я и я были в моем домашнем каталоге, я могу квалифицировать исполняемое имя, подобное этому, и выполнить его:

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. Также обратите внимание, что строка hash bang (#!) Должна быть первой строкой файла (если она еще не существует). Обратите также внимание на то, что для этого метода требуется, чтобы ваша оболочка для входа была bash (по умолчанию для Mac OS X X и большинства дистрибутивов Linux). Также обратите внимание, что если вы хотите, чтобы ваши программы, установленные в ~/bin, были использованы по предпочтению системным исполняемым файлам, вы должны изменить порядок экспорта следующим образом:

export PATH=~/bin:$PATH

Ответ 6

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

Чтобы использовать компилятор 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

Ответ 7

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

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

Ответ 8

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

- Wall -pedantic -Weffc++ -Werror

Ответ 9

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

make foo && ./$_

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

Ответ 10

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

  1. make filename

  2. ./filename

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

Для C:

gcc filename.c

./a.out

Для C++:

g++ filename.cpp

./a.out

Ответ 11

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

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

Ответ 13

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

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

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

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

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

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

Ответ 14

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

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

Ответ 15

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

username$ gcc /Desktop/test.c 

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

username$ ~/a.out

Ответ 16

Зайдите в свой корневой каталог (должен быть ~) и посмотрите на файл с именем .bash_profile. Вставьте этот код в новую строку:

function run() {
    eval make $1
    eval ./$1
}

Перезапустите все открытые терминалы. Теперь запустите любую программу c++, добавив к ней префикс run:

run hello-world