我有很多彼此无关的 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
..
我试图想出一个shell脚本来编译它们并给可执行文件不同的名称。我一直在尝试find
这样:
find . -type f -name *.cpp -exec g++ -llibname '{}' \;
这会编译所有文件,但会a.out
为每个文件生成,所以我最终只得到一个可执行文件。如何剥离文件扩展名并将其作为可执行文件名?(例如program1.cpp
我需要g++ program1.cpp -o program1
)