互いに無関係で、それぞれが 1 つのファイルにしか含まれていない C++ プログラムがたくさんあります。ディレクトリ構造は次のようになります。
dir1
program1.cpp
program1.h
program2.cpp
program2.h
dir2
program3.cpp
program3.h
program4.cpp
program4.h
dir3
program5.cpp
program5.h
program6.cpp
program6.h
..
それらすべてをコンパイルし、実行可能ファイルに異なる名前を付けるシェルスクリプトを考え出そうとしています。find
私はこれを次のように試してきました:
find . -type f -name *.cpp -exec g++ -llibname '{}' \;
これにより、すべてのファイルがコンパイルされますが、a.out
ファイルごとに生成されるため、最終的に実行可能ファイルは 1 つだけになります。ファイル拡張子を削除して、実行可能ファイル名として指定するにはどうすればよいですか? (例: がprogram1.cpp
必要な場合g++ program1.cpp -o program1
)