Что такое команда для компиляции и запуска программ на C ++?

Я новичок в Linux. Я использую Ubuntu 11.04 и не знаю, как скомпилировать и выполнить на нем программу на C ++. Мне нужно знать команды для компиляции и выполнения программы на C ++ в Linux.

68
задан 14 September 2011 в 21:28

36 ответов

Вот как мне нравится компилироваться с g ++.

$g++ -W -Wall -pedantic -o programName -p sourceFile.cpp -W: Print extra warning messages for some problems. -Wall: Enable all the warnings about questionable code -pedantic: Show all the warnings demanded by strict ISO compliance -o programName: place the executable output in programName sourceFile.cpp: the name of our source code file
4
ответ дан 25 July 2018 в 21:19
  • 1
  • 2
    Мне нравится ваш ответ. Это приносит дополнительные предложения. Но вы должны действительно повторить его, чтобы быть общеприемлемым. – Vlastimil 6 November 2017 в 10:39

Чтобы скомпилировать ваш код c ++, используйте:

g++ foo.c

foo.c в этом примере - это имя скомпилируемой программы.

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

./a.out

foo.c уже должен быть в вашем $ PATH, поэтому вам не нужно явно вызывать /usr/bin/g++, но вы можете использовать последнее в любом случае.

foo.c должен находиться в том же каталоге, в котором вы 'запустите команду. Если есть какие-либо сомнения, вы можете убедиться, что находитесь в одном каталоге, набрав ls foo.c или head foo.c (если вам нужно проверить, что вы работаете с правильным foo.)

Как отмечалось в @ con-f-use, компилятор обычно делает этот файл исполняемым, но если нет, вы можете сделать это самостоятельно (поэтому работающая команда ./a.out или ее эквивалент будет работать):

chmod +x ./a.out

Чтобы указать имя скомпилированного выходного файла, чтобы он не назывался a.out, use -o` с вашей командой g ++. Например,

g++ -o output foo.c

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

80
ответ дан 25 July 2018 в 21:19
  • 1
    Компилятор обычно делает двоичный файл (a.out в этом случае) исполняемым. Если нет, вы можете сделать это: chmod +x a.out. Когда ваша скомпилированная программа является исполняемой, вы можете запустить ее, набрав ./a.out - точку и индикацию косой черты, которую вы хотите выполнить. – con-f-use 14 September 2011 в 20:57
  • 2
    @Rajeshkumar, вы нашли один из этих ответов по своему вкусу? Если да, тогда вы могли бы пометить один из них в качестве принятого ответа (путем выделения галочки под стрелками вверх / вниз), чтобы мы могли провести линию под этой проблемой. – Chris Wilson 11 October 2011 в 17:47
  • 3
    Есть ли разница между g ++ foo.c -o выходом и g ++ -o выходом foo.c? – Goldname 1 October 2016 в 05:51

Я делаю два предположения здесь:

У вас уже есть исходный файл / программа на C ++, готовый к сборке. Вы создали систему сборки на своем компьютере

Самый простой способ для компиляции C ++-программы на Ubuntu или любого другого дистрибутива Linux, на самом деле, это ввести

g++ main.cpp -o main g ++ - это вызов C ++-компонента GCC, дефакто-компилятора для C / C ++ и целых хост других языков на платформе Linux. В настоящее время это единственный компилятор, способный скомпилировать ядро ​​Linux. main.cpp - исходный файл c ++, который вы хотите скомпилировать. -o main указывает имя выходного файла, который вы хотите создать после компиляции источника. Целевой исходный файл и целевой выходной файл могут быть инвертированы, если вы хотите, поэтому g++ -o main main.cpp в равной степени действителен. Чтобы затем выполнить эту программу, вам нужно сделать ./main в терминале.

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

g++ ~/Desktop/main.cpp -o ~/Projects/main

будет компилировать исходный файл C ++, расположенный на вашем рабочем столе, и поместить исполняемый двоичный файл в папку Projects в вашем домашнем каталоге. Для запуска этого исполняемого файла запустите ./Projects/main.

15
ответ дан 25 July 2018 в 21:19
g++ filename.cpp

Эл.г:

g++ One.cpp

это будет генерировать выходной файл назван (например):

a.out

если вы создаете другую программу и скомпилировать, что (например):

g++ Two.cpp

это также будет генерировать выходной файл назван (электронная.г):

a.out

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

g++ One.cpp -o One

теперь, ваш выходной файл будет :

One

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

2
ответ дан 25 July 2018 в 21:19
  • 1
    Я не вижу, как этот ответ может улучшить существующий принятый ответ. – Vlastimil 6 November 2017 в 10:38

Вам нужен g ++, поскольку gcc может не легко скомпилировать cpp-файл. Вам также нужно научиться vim или emacs писать код C. Попробуйте это на вашем терминале:

Введите тестовую программу и сохраните ее:

$vim hello.cc

Скомпилировать hello.cc с g ++:

$g++ hello.cc -o hello

Выполните его:

$./hello

Здесь ./ означает, что файл exe находится под текущим режком.

1
ответ дан 25 July 2018 в 21:19
  • 1
    gcc - это компилятор GNU для компилятора C и C ++. И OP не обязательно должен знать vim или emacs для написания кода C, есть много других текстовых редакторов и среды IDE. – Nitin Venkatesh 14 September 2011 в 21:38
  • 2
    хотя я люблю vim, если кто-то уже борется с тем, как решить проблему, предлагая vim не очень полезно. – johanvdw 14 September 2011 в 21:45
  • 3
    Мне лично не нравится vi, но это не имеет значения. Вы должны отклониться от предложения конкретного редактора, каждый использует его / ее собственный. – Vlastimil 6 November 2017 в 10:36

g++ является интерфейсом к gcc (сборнику компилятора GNU) с некоторыми предопределенными макросами c ++ и различными опциями / флагами по умолчанию.

компиляция c ++-кода с gcc удобна, когда g++ недоступен по каким-либо причинам, на самом деле это всего лишь вопрос связывания с библиотекой c ++ -lstdc++ и информирование gcc для обработки введите как код c ++ (либо с помощью расширения .C, либо заставляя язык с -x) другими действительными суффиксами имени файла c ++: .cc, .cp, .cxx, .cpp, .CPP, .c++

пример:

gcc cpp_code.C -lstdc++ другие допустимые суффиксы имени файла c ++: .cc, .cp, .cxx, .cpp, .CPP, .c++

или явно указать язык ввода:

gcc -x c++ cpp_code.txt -lstdc++ расширение может быть чем угодно или даже ничего

по умолчанию результатом (после успешной компиляции) является файл a.out, который можно запустить с помощью ./a.out

0
ответ дан 25 July 2018 в 21:19

Вот как мне нравится компилироваться с g ++.

$g++ -W -Wall -pedantic -o programName -p sourceFile.cpp -W: Print extra warning messages for some problems. -Wall: Enable all the warnings about questionable code -pedantic: Show all the warnings demanded by strict ISO compliance -o programName: place the executable output in programName sourceFile.cpp: the name of our source code file
4
ответ дан 2 August 2018 в 02:59
  • 1
  • 2
    Мне нравится ваш ответ. Это приносит дополнительные предложения. Но вы должны действительно повторить его, чтобы быть общеприемлемым. – Vlastimil 6 November 2017 в 10:39

Чтобы скомпилировать ваш код c ++, используйте:

g++ foo.c

foo.c в этом примере - это имя скомпилируемой программы.

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

./a.out

foo.c уже должен быть в вашем $ PATH, поэтому вам не нужно явно вызывать /usr/bin/g++, но вы можете использовать последнее в любом случае.

foo.c должен находиться в том же каталоге, в котором вы 'запустите команду. Если есть какие-либо сомнения, вы можете убедиться, что находитесь в одном каталоге, набрав ls foo.c или head foo.c (если вам нужно проверить, что вы работаете с правильным foo.)

Как отмечалось в @ con-f-use, компилятор обычно делает этот файл исполняемым, но если нет, вы можете сделать это самостоятельно (поэтому работающая команда ./a.out или ее эквивалент будет работать):

chmod +x ./a.out

Чтобы указать имя скомпилированного выходного файла, чтобы он не назывался a.out, use -o` с вашей командой g ++. Например,

g++ -o output foo.c

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

81
ответ дан 2 August 2018 в 02:59
  • 1
    Компилятор обычно делает двоичный файл (a.out в этом случае) исполняемым. Если нет, вы можете сделать это: chmod +x a.out. Когда ваша скомпилированная программа является исполняемой, вы можете запустить ее, набрав ./a.out - точку и индикацию косой черты, которую вы хотите выполнить. – con-f-use 14 September 2011 в 20:57
  • 2
    @Rajeshkumar, вы нашли один из этих ответов по своему вкусу? Если да, тогда вы могли бы пометить один из них в качестве принятого ответа (путем выделения галочки под стрелками вверх / вниз), чтобы мы могли провести линию под этой проблемой. – Chris Wilson 11 October 2011 в 17:47
  • 3
    Есть ли разница между G++ фоо.с-o выходной и G++ -O выходной фу.с? – Goldname 1 October 2016 в 05:51

Я делаю два предположения здесь:

У вас уже есть исходный файл / программа на C ++, готовый к сборке. Вы создали систему сборки на своем компьютере

Самый простой способ для компиляции C ++-программы на Ubuntu или любого другого дистрибутива Linux, на самом деле, это ввести

g++ main.cpp -o main g ++ - это вызов C ++-компонента GCC, дефакто-компилятора для C / C ++ и целых хост других языков на платформе Linux. В настоящее время это единственный компилятор, способный скомпилировать ядро ​​Linux. main.cpp - исходный файл c ++, который вы хотите скомпилировать. -o main указывает имя выходного файла, который вы хотите создать после компиляции источника. Целевой исходный файл и целевой выходной файл могут быть инвертированы, если вы хотите, поэтому g++ -o main main.cpp в равной степени действителен. Чтобы затем выполнить эту программу, вам нужно сделать ./main в терминале.

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

g++ ~/Desktop/main.cpp -o ~/Projects/main

будет компилировать исходный файл C ++, расположенный на вашем рабочем столе, и поместить исполняемый двоичный файл в папку Projects в вашем домашнем каталоге. Для запуска этого исполняемого файла запустите ./Projects/main.

15
ответ дан 2 August 2018 в 02:59
g++ filename.cpp

, например:

g++ One.cpp

Это будет генерировать выходной файл с именем (например):

a.out

Если вы создаете другую программу и компилируете ее (например) :

g++ Two.cpp

Это также будет генерировать выходной файл с именем (например):

a.out

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

g++ One.cpp -o One

, ваш выходной файл будет:

One

Теперь вы можете выполнить файл с указанным вами именем. [ ! d6]

2
ответ дан 2 August 2018 в 02:59
  • 1
    Я не вижу, как этот ответ может улучшить существующий принятый ответ. – Vlastimil 6 November 2017 в 10:38

Вам нужен g ++, поскольку gcc может не легко скомпилировать cpp-файл. Вам также нужно научиться vim или emacs писать код C. Попробуйте это на вашем терминале:

Введите тестовую программу и сохраните ее:

$vim hello.cc

Скомпилировать hello.cc с g ++:

$g++ hello.cc -o hello

Выполните его:

$./hello

Здесь ./ означает, что файл exe находится под текущим режком.

1
ответ дан 2 August 2018 в 02:59
  • 1
    gcc - это компилятор GNU для компилятора C и C ++. И OP не обязательно должен знать vim или emacs для написания кода C, есть много других текстовых редакторов и среды IDE. – Nitin Venkatesh 14 September 2011 в 21:38
  • 2
    хотя я люблю ВИМ, если кто-то уже борется с выяснения, как запускать проблему, предполагая, что vim-это не очень полезно. – johanvdw 14 September 2011 в 21:45
  • 3
    Мне лично не нравится vi, но это не имеет значения. Вы должны отклониться от предложения конкретного редактора, каждый использует его / ее собственный. – Vlastimil 6 November 2017 в 10:36

g++ является интерфейсом к gcc (сборнику компилятора GNU) с некоторыми предопределенными макросами c ++ и различными опциями / флагами по умолчанию.

компиляция c ++-кода с gcc удобна, когда g++ недоступен по каким-либо причинам, на самом деле это всего лишь вопрос связывания с библиотекой c ++ -lstdc++ и информирование gcc для обработки введите как код c ++ (либо с помощью расширения .C, либо заставляя язык с -x) другими действительными суффиксами имени файла c ++: .cc, .cp, .cxx, .cpp, .CPP, .c++

пример:

gcc cpp_code.C -lstdc++ другие допустимые суффиксы имени файла c ++: .cc, .cp, .cxx, .cpp, .CPP, .c++

или явно указать язык ввода:

gcc -x c++ cpp_code.txt -lstdc++ расширение может быть чем угодно или даже ничего

по умолчанию результатом (после успешной компиляции) является файл a.out, который можно запустить с помощью ./a.out

0
ответ дан 2 August 2018 в 02:59

Вот как мне нравится компилироваться с g ++.

$g++ -W -Wall -pedantic -o programName -p sourceFile.cpp -W: Print extra warning messages for some problems. -Wall: Enable all the warnings about questionable code -pedantic: Show all the warnings demanded by strict ISO compliance -o programName: place the executable output in programName sourceFile.cpp: the name of our source code file
4
ответ дан 4 August 2018 в 18:49
  • 1
  • 2
    Мне нравится ваш ответ. Это приносит дополнительные предложения. Но вы должны действительно повторить его, чтобы быть общеприемлемым. – Vlastimil 6 November 2017 в 10:39

Чтобы скомпилировать ваш код c ++, используйте:

g++ foo.c

foo.c в этом примере - это имя скомпилируемой программы.

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

./a.out

foo.c уже должен быть в вашем $ PATH, поэтому вам не нужно явно вызывать /usr/bin/g++, но вы можете использовать последнее в любом случае.

foo.c должен находиться в том же каталоге, в котором вы 'запустите команду. Если есть какие-либо сомнения, вы можете убедиться, что находитесь в одном каталоге, набрав ls foo.c или head foo.c (если вам нужно проверить, что вы работаете с правильным foo.)

Как отмечалось в @ con-f-use, компилятор обычно делает этот файл исполняемым, но если нет, вы можете сделать это самостоятельно (поэтому работающая команда ./a.out или ее эквивалент будет работать):

chmod +x ./a.out

Чтобы указать имя скомпилированного выходного файла, чтобы он не назывался a.out, use -o` с вашей командой g ++. Например,

g++ -o output foo.c

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

81
ответ дан 4 August 2018 в 18:49
  • 1
    Компилятор обычно делает двоичный файл (a.out в этом случае) исполняемым. Если нет, вы можете сделать это: chmod +x a.out. Когда ваша скомпилированная программа является исполняемой, вы можете запустить ее, набрав ./a.out - точку и индикацию косой черты, которую вы хотите выполнить. – con-f-use 14 September 2011 в 20:57
  • 2
    @Rajeshkumar, вы нашли один из этих ответов по своему вкусу? Если да, тогда вы могли бы пометить один из них в качестве принятого ответа (путем выделения галочки под стрелками вверх / вниз), чтобы мы могли провести линию под этой проблемой. – Chris Wilson 11 October 2011 в 17:47
  • 3
    Есть ли разница между g ++ foo.c -o выходом и g ++ -o выходом foo.c? – Goldname 1 October 2016 в 05:51

Я делаю два предположения здесь:

У вас уже есть исходный файл / программа на C ++, готовый к сборке. Вы создали систему сборки на своем компьютере

Самый простой способ для компиляции C ++-программы на Ubuntu или любого другого дистрибутива Linux, на самом деле, это ввести

g++ main.cpp -o main g ++ - это вызов C ++-компонента GCC, дефакто-компилятора для C / C ++ и целых хост других языков на платформе Linux. В настоящее время это единственный компилятор, способный скомпилировать ядро ​​Linux. main.cpp - исходный файл c ++, который вы хотите скомпилировать. -o main указывает имя выходного файла, который вы хотите создать после компиляции источника. Целевой исходный файл и целевой выходной файл могут быть инвертированы, если вы хотите, поэтому g++ -o main main.cpp в равной степени действителен. Чтобы затем выполнить эту программу, вам нужно сделать ./main в терминале.

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

g++ ~/Desktop/main.cpp -o ~/Projects/main

будет компилировать исходный файл C ++, расположенный на вашем рабочем столе, и поместить исполняемый двоичный файл в папку Projects в вашем домашнем каталоге. Для запуска этого исполняемого файла запустите ./Projects/main.

15
ответ дан 4 August 2018 в 18:49
g++ filename.cpp

, например:

g++ One.cpp

Это будет генерировать выходной файл с именем (например):

a.out

Если вы создаете другую программу и компилируете ее (например) :

g++ Two.cpp

Это также будет генерировать выходной файл с именем (например):

a.out

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

g++ One.cpp -o One

, ваш выходной файл будет:

One

Теперь вы можете выполнить файл с указанным вами именем. [ ! d6]

2
ответ дан 4 August 2018 в 18:49
  • 1
    Я не вижу, как этот ответ может улучшить существующий принятый ответ. – Vlastimil 6 November 2017 в 10:38

Вам нужен g ++, поскольку gcc может не легко скомпилировать cpp-файл. Вам также нужно научиться vim или emacs писать код C. Попробуйте это на вашем терминале:

Введите тестовую программу и сохраните ее:

$vim hello.cc

Скомпилировать hello.cc с g ++:

$g++ hello.cc -o hello

Выполните его:

$./hello

Здесь ./ означает, что файл exe находится под текущим режком.

1
ответ дан 4 August 2018 в 18:49
  • 1
    gcc - это компилятор GNU для компилятора C и C ++. И OP не обязательно должен знать vim или emacs для написания кода C, есть много других текстовых редакторов и среды IDE. – Nitin Venkatesh 14 September 2011 в 21:38
  • 2
    хотя я люблю vim, если кто-то уже борется с тем, как решить проблему, предлагая vim не очень полезно. – johanvdw 14 September 2011 в 21:45
  • 3
    Мне лично не нравится vi, но это не имеет значения. Вы должны отклониться от предложения конкретного редактора, каждый использует его / ее собственный. – Vlastimil 6 November 2017 в 10:36

g++ является интерфейсом к gcc (сборнику компилятора GNU) с некоторыми предопределенными макросами c ++ и различными опциями / флагами по умолчанию.

компиляция c ++-кода с gcc удобна, когда g++ недоступен по каким-либо причинам, на самом деле это всего лишь вопрос связывания с библиотекой c ++ -lstdc++ и информирование gcc для обработки введите как код c ++ (либо с помощью расширения .C, либо заставляя язык с -x) другими действительными суффиксами имени файла c ++: .cc, .cp, .cxx, .cpp, .CPP, .c++

пример:

gcc cpp_code.C -lstdc++ другие допустимые суффиксы имени файла c ++: .cc, .cp, .cxx, .cpp, .CPP, .c++

или явно указать язык ввода:

gcc -x c++ cpp_code.txt -lstdc++ расширение может быть чем угодно или даже ничего

по умолчанию результатом (после успешной компиляции) является файл a.out, который можно запустить с помощью ./a.out

0
ответ дан 4 August 2018 в 18:49

Вот как мне нравится компилироваться с g ++.

$g++ -W -Wall -pedantic -o programName -p sourceFile.cpp -W: Print extra warning messages for some problems. -Wall: Enable all the warnings about questionable code -pedantic: Show all the warnings demanded by strict ISO compliance -o programName: place the executable output in programName sourceFile.cpp: the name of our source code file
4
ответ дан 6 August 2018 в 03:12
  • 1
  • 2
    Мне нравится ваш ответ. Это приносит дополнительные предложения. Но вы должны действительно повторить его, чтобы быть общеприемлемым. – Vlastimil 6 November 2017 в 10:39

для компиляции кода C++, используйте:

g++ foo.c

фу.C в примере Название программы для компиляции.

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

./a.out

фу.с уже должны быть в вашем $Path, так что вам не нужно звонить /usr/bin/g++ явно, но вы можете использовать их в любом случае.

foo.c должны быть в том же каталоге, вы запускаете команду. Если есть сомнения, вы можете убедиться, что вы находитесь в том же каталоге, вписав ls foo.c и нажать [F8] (если вам нужно, чтобы убедиться, что вы работаете с правильным foo.)

как отметил @кон-Ф-использовать компилятор обычно Делаем Этот файл исполняемым, но если нет, вы можете сделать это сами (так, чтобы выполнить команду, ./a.out или эквивалент Совместимость):

chmod +x ./a.out

указать имя скомпилированного файла, так что это не им на [F11]-о` с вашей команды G++. Е. г.,

g++ -o output foo.c

это будет компилироваться [от f13] в двоичный файл с именем output, и можно ввести ./output для запуска скомпилированного кода.

81
ответ дан 6 August 2018 в 03:12
  • 1
    Компилятор обычно делает двоичный файл (a.out в этом случае) исполняемым. Если нет, вы можете сделать это: chmod +x a.out. Когда ваша скомпилированная программа является исполняемой, вы можете запустить ее, набрав ./a.out - точку и индикацию косой черты, которую вы хотите выполнить. – con-f-use 14 September 2011 в 20:57
  • 2
    @Rajeshkumar, вы нашли один из этих ответов по своему вкусу? Если да, тогда вы могли бы пометить один из них в качестве принятого ответа (путем выделения галочки под стрелками вверх / вниз), чтобы мы могли провести линию под этой проблемой. – Chris Wilson 11 October 2011 в 17:47
  • 3
    Есть ли разница между g ++ foo.c -o выходом и g ++ -o выходом foo.c? – Goldname 1 October 2016 в 05:51

Я делаю два предположения здесь:

У вас уже есть исходный файл / программа на C ++, готовый к сборке. Вы создали систему сборки на своем компьютере

Самый простой способ для компиляции C ++-программы на Ubuntu или любого другого дистрибутива Linux, на самом деле, это ввести

g++ main.cpp -o main g ++ - это вызов C ++-компонента GCC, дефакто-компилятора для C / C ++ и целых хост других языков на платформе Linux. В настоящее время это единственный компилятор, способный скомпилировать ядро ​​Linux. main.cpp - исходный файл c ++, который вы хотите скомпилировать. -o main указывает имя выходного файла, который вы хотите создать после компиляции источника. Целевой исходный файл и целевой выходной файл могут быть инвертированы, если вы хотите, поэтому g++ -o main main.cpp в равной степени действителен. Чтобы затем выполнить эту программу, вам нужно сделать ./main в терминале.

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

g++ ~/Desktop/main.cpp -o ~/Projects/main

будет компилировать исходный файл C ++, расположенный на вашем рабочем столе, и поместить исполняемый двоичный файл в папку Projects в вашем домашнем каталоге. Для запуска этого исполняемого файла запустите ./Projects/main.

15
ответ дан 6 August 2018 в 03:12
g++ filename.cpp

, например:

g++ One.cpp

Это будет генерировать выходной файл с именем (например):

a.out

Если вы создаете другую программу и компилируете ее (например) :

g++ Two.cpp

Это также будет генерировать выходной файл с именем (например):

a.out

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

g++ One.cpp -o One

, ваш выходной файл будет:

One

Теперь вы можете выполнить файл с указанным вами именем. [ ! d6]

2
ответ дан 6 August 2018 в 03:12
  • 1
    Я не вижу, как этот ответ может улучшить существующий принятый ответ. – Vlastimil 6 November 2017 в 10:38

Вам нужен g ++, поскольку gcc может не легко скомпилировать cpp-файл. Вам также нужно научиться vim или emacs писать код C. Попробуйте это на вашем терминале:

Введите тестовую программу и сохраните ее:

$vim hello.cc

Скомпилировать hello.cc с g ++:

$g++ hello.cc -o hello

Выполните его:

$./hello

Здесь ./ означает, что файл exe находится под текущим режком.

1
ответ дан 6 August 2018 в 03:12
  • 1
    gcc - это компилятор GNU для компилятора C и C ++. И OP не обязательно должен знать vim или emacs для написания кода C, есть много других текстовых редакторов и среды IDE. – Nitin Venkatesh 14 September 2011 в 21:38
  • 2
    хотя я люблю vim, если кто-то уже борется с тем, как решить проблему, предлагая vim не очень полезно. – johanvdw 14 September 2011 в 21:45
  • 3
    Мне лично не нравится vi, но это не имеет значения. Вы должны отклониться от предложения конкретного редактора, каждый использует его / ее собственный. – Vlastimil 6 November 2017 в 10:36

g++ является интерфейсом к gcc (сборнику компилятора GNU) с некоторыми предопределенными макросами c ++ и различными опциями / флагами по умолчанию.

компиляция c ++-кода с gcc удобна, когда g++ недоступен по каким-либо причинам, на самом деле это всего лишь вопрос связывания с библиотекой c ++ -lstdc++ и информирование gcc для обработки введите как код c ++ (либо с помощью расширения .C, либо заставляя язык с -x) другими действительными суффиксами имени файла c ++: .cc, .cp, .cxx, .cpp, .CPP, .c++

пример:

gcc cpp_code.C -lstdc++ другие допустимые суффиксы имени файла c ++: .cc, .cp, .cxx, .cpp, .CPP, .c++

или явно указать язык ввода:

gcc -x c++ cpp_code.txt -lstdc++ расширение может быть чем угодно или даже ничего

по умолчанию результатом (после успешной компиляции) является файл a.out, который можно запустить с помощью ./a.out

0
ответ дан 6 August 2018 в 03:12

Вот как мне нравится компилироваться с g ++.

$g++ -W -Wall -pedantic -o programName -p sourceFile.cpp -W: Print extra warning messages for some problems. -Wall: Enable all the warnings about questionable code -pedantic: Show all the warnings demanded by strict ISO compliance -o programName: place the executable output in programName sourceFile.cpp: the name of our source code file
4
ответ дан 7 August 2018 в 20:53
  • 1
  • 2
    Мне нравится ваш ответ. Это приносит дополнительные предложения. Но вы должны действительно повторить его, чтобы быть общеприемлемым. – Vlastimil 6 November 2017 в 10:39

Чтобы скомпилировать ваш код c ++, используйте:

g++ foo.c

foo.c в этом примере - это имя скомпилируемой программы.

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

./a.out

foo.c уже должен быть в вашем $ PATH, поэтому вам не нужно явно вызывать /usr/bin/g++, но вы можете использовать последнее в любом случае.

foo.c должен находиться в том же каталоге, в котором вы 'запустите команду. Если есть какие-либо сомнения, вы можете убедиться, что находитесь в одном каталоге, набрав ls foo.c или head foo.c (если вам нужно проверить, что вы работаете с правильным foo.)

Как отмечалось в @ con-f-use, компилятор обычно делает этот файл исполняемым, но если нет, вы можете сделать это самостоятельно (поэтому работающая команда ./a.out или ее эквивалент будет работать):

chmod +x ./a.out

Чтобы указать имя скомпилированного выходного файла, чтобы он не назывался a.out, use -o` с вашей командой g ++. Например,

g++ -o output foo.c

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

81
ответ дан 7 August 2018 в 20:53
  • 1
    Компилятор обычно делает двоичный файл (a.out в этом случае) исполняемым. Если нет, вы можете сделать это: chmod +x a.out. Когда ваша скомпилированная программа является исполняемой, вы можете запустить ее, набрав ./a.out - точку и индикацию косой черты, которую вы хотите выполнить. – con-f-use 14 September 2011 в 20:57
  • 2
    @Rajeshkumar, вы нашли один из этих ответов по своему вкусу? Если да, тогда вы могли бы пометить один из них в качестве принятого ответа (путем выделения галочки под стрелками вверх / вниз), чтобы мы могли провести линию под этой проблемой. – Chris Wilson 11 October 2011 в 17:47
  • 3
    Есть ли разница между g ++ foo.c -o выходом и g ++ -o выходом foo.c? – Goldname 1 October 2016 в 05:51

Я делаю два предположения здесь:

У вас уже есть исходный файл / программа на C ++, готовый к сборке. Вы создали систему сборки на своем компьютере

Самый простой способ для компиляции C ++-программы на Ubuntu или любого другого дистрибутива Linux, на самом деле, это ввести

g++ main.cpp -o main g ++ - это вызов C ++-компонента GCC, дефакто-компилятора для C / C ++ и целых хост других языков на платформе Linux. В настоящее время это единственный компилятор, способный скомпилировать ядро ​​Linux. main.cpp - исходный файл c ++, который вы хотите скомпилировать. -o main указывает имя выходного файла, который вы хотите создать после компиляции источника. Целевой исходный файл и целевой выходной файл могут быть инвертированы, если вы хотите, поэтому g++ -o main main.cpp в равной степени действителен. Чтобы затем выполнить эту программу, вам нужно сделать ./main в терминале.

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

g++ ~/Desktop/main.cpp -o ~/Projects/main

будет компилировать исходный файл C ++, расположенный на вашем рабочем столе, и поместить исполняемый двоичный файл в папку Projects в вашем домашнем каталоге. Для запуска этого исполняемого файла запустите ./Projects/main.

15
ответ дан 7 August 2018 в 20:53
g++ filename.cpp

, например:

g++ One.cpp

Это будет генерировать выходной файл с именем (например):

a.out

Если вы создаете другую программу и компилируете ее (например) :

g++ Two.cpp

Это также будет генерировать выходной файл с именем (например):

a.out

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

g++ One.cpp -o One

, ваш выходной файл будет:

One

Теперь вы можете выполнить файл с указанным вами именем. [ ! d6]

2
ответ дан 7 August 2018 в 20:53
  • 1
    Я не вижу, как этот ответ может улучшить существующий принятый ответ. – Vlastimil 6 November 2017 в 10:38

Вам нужен g ++, поскольку gcc может не легко скомпилировать cpp-файл. Вам также нужно научиться vim или emacs писать код C. Попробуйте это на вашем терминале:

Введите тестовую программу и сохраните ее:

$vim hello.cc

Скомпилировать hello.cc с g ++:

$g++ hello.cc -o hello

Выполните его:

$./hello

Здесь ./ означает, что файл exe находится под текущим режком.

1
ответ дан 7 August 2018 в 20:53
  • 1
    gcc - это компилятор GNU для компилятора C и C ++. И OP не обязательно должен знать vim или emacs для написания кода C, есть много других текстовых редакторов и среды IDE. – Nitin Venkatesh 14 September 2011 в 21:38
  • 2
    хотя я люблю vim, если кто-то уже борется с тем, как решить проблему, предлагая vim не очень полезно. – johanvdw 14 September 2011 в 21:45
  • 3
    Мне лично не нравится vi, но это не имеет значения. Вы должны отклониться от предложения конкретного редактора, каждый использует его / ее собственный. – Vlastimil 6 November 2017 в 10:36

g++ является интерфейсом к gcc (сборнику компилятора GNU) с некоторыми предопределенными макросами c ++ и различными опциями / флагами по умолчанию.

компиляция c ++-кода с gcc удобна, когда g++ недоступен по каким-либо причинам, на самом деле это всего лишь вопрос связывания с библиотекой c ++ -lstdc++ и информирование gcc для обработки введите как код c ++ (либо с помощью расширения .C, либо заставляя язык с -x) другими действительными суффиксами имени файла c ++: .cc, .cp, .cxx, .cpp, .CPP, .c++

пример:

gcc cpp_code.C -lstdc++ другие допустимые суффиксы имени файла c ++: .cc, .cp, .cxx, .cpp, .CPP, .c++

или явно указать язык ввода:

gcc -x c++ cpp_code.txt -lstdc++ расширение может быть чем угодно или даже ничего

по умолчанию результатом (после успешной компиляции) является файл a.out, который можно запустить с помощью ./a.out

0
ответ дан 7 August 2018 в 20:53

Другие вопросы по тегам:

Похожие вопросы: