Що таке команда для компіляції та запуску програм 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.