2012-03-19 19 views
0

gccコンパイラを使用しています。gccを使用した再帰コンパイル

ややこの

test$~: tree . 
. 
|-- folder 
| |-- hello.cpp 
| `-- hello.h 
`-- main.cpp 

1 directory, 3 files 
test$~: 

のようにファイルmain.cppmain()機能が含まれており、すべての機能はすべて私の中でこれまでfolder

という名前のディレクトリにmain.cpp 嘘によって呼び出されるように私のプロジェクトのソースツリーが見えます小さなプロジェクトソースコードをサブディレクトリの下に置く必要はありませんでした。私は短期で、探しています何

は、再帰サブディレクトリとそのサブディレクトリでコンパイルおよびように...このコマンドは、コードプロジェクトの ホームディレクトリから起動する必要があるため、いくつかのgccコマンドです。

+1

AFAIK、GCCにはこのようなメカニズムはありません。通常、このようなことはビルドシステム(Makeなど)によって処理されます。 –

+0

面白い考え。それが可能であるかもしれないことを示唆するためにマニュアルに何かを見つけましたか? AFAIK、それは可能ではない、コマンドライン上のすべてのファイルをリストするのに足りない。 –

答えて

0

私は現在、1を持っていないとして、私は本当にC++ライブラリでテストができませんでしたが、これは動作するはずです:私はちょうど-oオプションが省略されたときに何が起こるか覚えていない

find . -type f -iname *.cpp -execdir g++ {} \; 

をgccの場合それが必要ならば、これは少なくともあなたに少し近いソリューションをもたらすでしょう。代わりにmakefileを使用することをお勧めします。

+1

'g ++ -o a.out $(find。-type f -iname * .cpp -print)'?とにかくそれをするのは悪い考えです。 –

+0

@VladLazarenkoこれは、すべてのコンパイルデータをa.outに入れますか? –

+2

それはすべてのファイルを見つけてgccのコマンドラインに入れて、それらをコンパイルして 'a.out'バイナリにリンクします。私たちがbash + linuxを話しているなら。 –

関連する問題