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


89

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


1
Чи допомогла вам якась відповідь?
lindhe

Відповіді:


108

Щоб скласти код 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

Тут ./означає, що файл EXE знаходиться під поточним dir.


3
gcc - компілятор GNU для компілятора C і C ++. А OP не обов’язково знати vim або emacs, щоб написати код C, є багато інших текстових редакторів та IDE, що плавають навколо.
Нітін Венкатеш

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

Мені особисто це не подобається vi, але це не має значення. Вам слід відмовитися від пропозицій конкретного редактора, кожен у будь-якому разі використовує свою власну.
LinuxSecurityFreak

0

g++являє собою передню gccчастину (колекція GNU Compiler) з деякими заздалегідь заданими макросами 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


Ваша відповідь більш інформативна
Billal Begueradj
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.