2009-07-17 10 views
6

私はLinux Ubuntu Intrepid Ibexを使い、C++ファイルをGCCでコンパイルしていますが、コンパイルするとgccは**。out *ファイルを作成しますが、それは実行可能ですが、実行ファイルですか?ありがとう!GCCを使ってLinuxをビルドする

+0

実行ファイルとLinux実行ファイルの違いは何ですか? – Ben

+0

あなたは明確にすることができますか? '* .out'ファイルは実行ファイルです。別の種類の実行ファイルが必要ですか? – notnoop

+0

Nathan、 'a.out'という名前は、初期のUnixコンパイラの歴史的なアーティファクトです。サブジェクトに関するウィキペディアの記事を参照してください:http://en.wikipedia.org/wiki/A.out – quark

答えて

18

実行可能ファイルは「Linux実行可能ファイル」です。つまり、最近のLinuxシステムで実行可能です。あなたは、Linuxシステムを使用して、ファイルを実行できるようになる前に、あることに留意してください

gcc -o your-executable-name your-source-file.c

を使用して、その出力ファイルをどこに置くかGCCを教えて、あなたはまだ

rename a.out your-executable-name

以上を使用して欲しいものにファイルの名前を変更することができます、あなたはその「実行可能なビット」を設定する必要があります。

chmod +x your-executable-name

はまた、Linux上で、ファイルの拡張子は、それが実際にあるものとはほとんど関係がないことを覚えておいてください - あなたの実行ファイルは名前を付けることができます、something.out、さらにはsomething.exeであり、GCCによって作成され、ファイル上でchmod +xを実行している場合は、Linux実行可能ファイルとして実行できます。

+0

ありがとう非常に!!!!! –

+4

gcc(実際に呼び出すリンカ)は出力ファイルに実行可能ビットをすでに設定していませんか? – CesarB

+2

@CesarB:はい、gccを呼び出すと、デフォルトで実行可能ファイル名が実行可能になります。 – quark

2

これは実行可能ファイルです。 a.outが気に入らなければ、-oフラグをコンパイラに渡すことができます。実行可能ファイルに実行可能ビットが設定されていない場合は、自分自身で実行する必要があります。

chmod u+x ./a.out 
./a.out 

HTH。

gcc -c -o myprog something.c 

あなたはまた、単に* .outのファイルgccが目的の名前を生成し名前を変更できます。myprogあなたはこのようにGCCを呼び出すことができると呼ばれる実行可能ファイルを作成するには

+0

* .outファイルはすでに実行可能ですが、ネイティブのLinux実行ファイルをビルドする方法、Linuxのネイティブ実行ファイルは実行できません拡張子を持つ –

+5

Linuxでは、拡張は関係ありません。あなたは好きなものにファイルの名前を変更することができます。 – notnoop

+0

問題は私が知っているpermitionです。ありがとう! –

関連する問題