C ++プログラムをコンパイルして実行するコマンドとは何ですか?


89

私はLinuxが初めてです。私はUbuntu 11.04を使用していますが、その中でC ++プログラムをコンパイルして実行する方法がわかりません。LinuxでC ++プログラムをコンパイルおよび実行するコマンドを知っている必要があります。


1
回答のいずれかが役立ちましたか?
リンデ

回答:


108

C ++コードをコンパイルするには、次を使用します。

g++ foo.cpp

例のfoo.cppは、コンパイルされるプログラムの名前です。

これa.outにより、端末で次のように入力して実行できる、同じディレクトリに実行可能ファイルが生成されます。

./a.out

g ++は既に$ PATHにあるはずなので/usr/bin/g++、明示的に呼び出す必要はありませんが、いずれの場合でも後者を使用できます。

foo.cppコマンドを実行しているのと同じディレクトリにある必要があります。疑わしい場合は、ls foo.cppor を入力して同じディレクトリhead foo.cppにいることを確認できます(正しいで作業していることを確認する必要がある場合foo)。

@ con-f-useで述べたように、コンパイラは通常このファイルを実行可能にしますが、そうでない場合は自分でこれを行うことができます(したがって、実行するコマンド、./a.outまたは同等のコマンドが機能します)。

chmod +x ./a.out

コンパイル済み出力ファイルの名前を指定して、名前が付けられないようにするには、g ++コマンドa.outで使用-oします。

例えば

g++ -o output foo.cpp

これfoo.cppにより、という名前のバイナリファイルにコンパイルされ、output入力./outputしてコンパイルされたコードを実行できます。


6
コンパイラは通常、バイナリ(a.outこの場合)を実行可能にします。そうでない場合は、次のように入力してくださいchmod +x a.out。コンパイルされたプログラムが実行可能であれば、実行したいことを入力して実行できます./a.out-ドットとスラッシュ表示。
con-f-use

@Rajeshkumar、あなたの好みに対するこれらの答えの1つを見つけましたか?もしそうなら、あなたはそれらの1つを受け入れられた答えとしてマークしてください(上/下の投票矢印の下にチェックマークを付けることによって)、この問題の下に線を引くことができます。

g ++ foo.c -o outputとg ++ -o output foo.cに違いはありますか?
ゴールドネーム

21

ここで2つの仮定を行っています。

  1. ビルドの準備ができたC ++ソースファイル/プログラムが既にあります
  2. コンピューターにビルドシステムをセットアップしました

Ubuntuまたはその他のLinuxディストリビューションでC ++プログラムをコンパイルする最も簡単な方法は、次のように入力することです

g++ main.cpp -o main
  • g ++は、GCCの C ++コンポーネント、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

gccはcppファイルを簡単にコンパイルできない可能性があるため、g ++が必要です。
Cコードを作成するには、vimまたはemacsを学ぶ必要もあります。
端末でこれを試してください:

テストプログラムを入力して保存します。

$vim hello.cc

hello.ccg ++でコンパイルします。

$g++ hello.cc -o hello

実行する:

$./hello

ここで./は、exeファイルが現在のディレクトリの下にあることを意味します。


3
gccは、CおよびC ++コンパイラ用のGNUコンパイラです。また、OPは必ずしもCコードを記述するためにvimやemacsを知る必要はありません。他にも多くのテキストエディターや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


あなたの答えはより有益です
ビラルBegueradj
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.