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

c++ c macos console terminal

484099 просмотра

16 ответа

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

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

Автор: P-A Источник Размещён: 14.06.2019 09:48

Ответы (16)


168 плюса

Решение

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

make foo

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

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

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

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

./foo
Автор: camh Размещён: 21.10.2008 09:10

103 плюса

gcc main.cpp -o main.out  
./main.out
Автор: Andrey Neverov Размещён: 21.10.2008 08:46

65 плюса

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

$ g++ -o lab21 iterative.cpp

-o буква О не ноль

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

iterative.cpp это ваш файл C ++

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

$ ./lab21
Автор: Komengem Размещён: 24.02.2011 06:02

31 плюса

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

первый:

make foo

затем:

./foo
Автор: Victor Augusto Размещён: 28.07.2014 11:52

15 плюса

Выполнение всех приложений в среде 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 на терминал.

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

/ Users / оливер / MyProgram

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

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
Автор: orj Размещён: 22.10.2008 07:51

10 плюса

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

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

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

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

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

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

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

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

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

Автор: nerdwaller Размещён: 04.12.2012 11:38

8 плюса

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

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

Автор: P-A Размещён: 21.10.2008 08:45

7 плюса

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

- Wall -pedantic -Weffc++ -Werror
Автор: Nazgob Размещён: 21.10.2008 08:52

7 плюса

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

make foo && ./$_

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

Автор: markthethomas Размещён: 14.01.2015 04:07

5 плюса

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

  1. make filename

  2. ./filename

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

Для C:

gcc filename.c

./a.out

Для C ++:

g++ filename.cpp

./a.out
Автор: Yogesh Nogia Размещён: 11.04.2018 10:33

2 плюса

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

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

Автор: Konrad Rudolph Размещён: 21.10.2008 08:58

2 плюса

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

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)
Автор: Srini Kadamati Размещён: 22.12.2011 06:40

0 плюса

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

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

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

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

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

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

Автор: Shiv Prakash Размещён: 05.10.2018 11:49

0 плюса

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

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

-1 плюса

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

username$ gcc /Desktop/test.c 

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

username$ ~/a.out
Автор: Himanshu Mahajan Размещён: 23.08.2016 07:06

-1 плюса

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

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

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

run hello-world
Автор: Ken Mueller Размещён: 22.04.2019 07:06
Вопросы из категории :
32x32