- ベストアンサー
gccコンパイルの「o」オプションとは?
- gccコンパイルの「o」オプションは、オブジェクトファイルをリネームするために使用されます。
- リネームすることで、出力ファイルの名前を変更することができます。
- 「o」オプションは、特定のシチュエーションで使用されますが、具体的な詳細は明確ではありません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>g++ -o a.out c.o cpp.o これは、オブジェクトファイル c.oとcpp.oをリンクしてa.outに出力する と、いうところは、よろしいですか? gcc/g++などでは、最終的な実行ファイルは(入力ファイル名に関係なく) a.out(Windows版ではa.exe) になります。 演習問題くらいならそれでかまわないのですが、実用的なソフト、たとえば、lsやcatが全て「a.out」では困ります。リネームするにしても、元のa.outがlsから作ったa.outなのかcatからのa.outなのかわかりません。 そこで -o で出力 ファイル名を指定します。 ・-oを使わない場合 gcc ls.c : lsのソースをコンパイルしてファイルa.outに出力 gcc cat.c : catのソースをコンパイルしてファイルa.outに出力 ・-oを使う場合 gcc -o ls ls.c : lsのソースをコンパイルしてファイルlsに出力 gcc -o cat cat.c : catのソースをコンパイルしてファイルcatに出力 #実際のlsやcatはもうちょっと複雑ですが、例ということで。 また、条件付きコンパイルといって、同じソースファイルから条件の違うオブジェクトファイルを作成することができます。(例えば、同じ計算をintで行う低精度高速版とdoubleで行う高精度低速版とか)そんな場合にオブジェクトファイルを区別するのにも使います。 gcc -c -o ex_fast.o -DEX_FAST ex.c : ex.cのソースをEX_FASTの条件でコンパイルしてファイルex_fast.oに出力 gcc -c -o ex_high.o -DEX_HIGH ex.c : ex.cのソースをEX_HIGHの条件でコンパイルしてファイルex_high.oに出力 # 実際には、条件を満す1つだけを使うことが多く、この例のような使い方はあまりみかけません
その他の回答 (1)
- Tacosan
- ベストアンサー率23% (3656/15482)
・デフォルトの名前では都合の悪いとき ・ファイル名を明示したいとき とかかな.
お礼
よく理解できました。 ありがとうございました。 これから、「o」オプションを使いこなしていけそうです!