
代替品はありますか?
**/*.*
**/*.cpp
こうすることで、次のようなことができます:
gcc -std=c++14 -I ./include/ -o ./bin/main ./src/**/*.cpp
(makefile を一切使用しない場合のやり方)
Windowsでは次のようにしました:
gcc -std=c++14 -I include -o bin/main src/main.cpp src/Sth.cpp src/SthEl.cpp
正規表現が機能しないようだったり、機能させる方法を見つけられなかったりしたからです...
Windows でこれを行う方法を教えてください。
答え1
絶対パスを使用できるかどうかに応じて、次の PowerShell コードを使用できます。
$files = (Get-ChildItem -Recurse -Path ./src *.cpp | %{echo $_.FullName}) -Join " "
gcc -std=c++14 -I include -o bin/main $files
これを次のように短縮できるかもしれません:
gcc -std=c++14 -I include -o bin/main ((Get-ChildItem -Recurse -Path ./src *.cpp | %{echo $_.FullName}) -Join " ")
これは Linux の同等のものほど短くも読みやすくもありませんが、希望する結果を得るための最も近い方法だと思います。
src
フラットな階層の場合は、以下を使用できます。
gcc -std=c++14 -I include -o bin/main src/*.cpp