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


90

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


1
Вам помог какой-нибудь из ответов?
— Линд

Ответы:


109

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

g++ foo.cpp

В этом примере foo.cpp - это имя программы для компиляции.

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

./a.out

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

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

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

chmod +x ./a.out

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

Например

g++ -o output foo.cpp

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


6
Компилятор обычно делает a.outисполняемый файл ( в данном случае). Если вы не можете сделать это, набрав: chmod +x a.out. Когда ваша скомпилированная программа является исполняемой, вы можете запустить ее, набрав ./a.out- точка и знак косой черты, что вы хотите ее выполнить.
— con-f-use

@Rajeshkumar, вы нашли один из этих ответов по своему вкусу? Если да, то не могли бы вы отметить один из них как принятый ответ (выбрав галочку под стрелками вверх / вниз), чтобы мы могли подвести черту под этой проблемой.

Есть ли разница между выводом g ++ foo.c -o и выводом g ++ -o foo.c?
— Goldname

21

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

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

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

g++ main.cpp -o main
  • g ++ - это вызов компонента C ++ GCC , компилятора defacto для 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.


5

Вот как мне нравится компилировать с 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
-p: Generate extra code to write profile information suitable for the analysis program prof

1
-p: Generate extra code to write profile information suitable for the analysis program prof.
— Ганс

Мне нравится твой ответ. Это приносит дополнительные предложения. Но вы должны действительно перефразировать это как общеприемлемое.
— LinuxSecurityFreak

1

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

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

$vim hello.cc

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

$g++ hello.cc -o hello

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

$./hello

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


3
gcc - это компилятор GNU для компиляторов C и C ++. И OP не обязательно должен знать vim или emacs для написания кода на C, есть много других текстовых редакторов и IDE.
— Нитин Венкатеш

3
хотя я люблю vim, если кто-то уже пытается выяснить, как решить проблему, предположить, что vim не очень полезен.
— johanvdw

Мне лично не нравится vi, но это не важно. Вы должны отказаться от предложения конкретного редактора, каждый в любом случае использует его / ее.
— LinuxSecurityFreak

0

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

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

пример :

gcc cpp_code.C -lstdc++ расширение в верхнем регистре ( .C) важно, чтобы gcc знал, что это файл c ++.

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

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

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


Ваш ответ более информативен
— Биллал Бегерадж
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.