
Existe um substituto para
**/*.*
**/*.cpp
para que eu possa fazer algo assim:
gcc -std=c++14 -I ./include/ -o ./bin/main ./src/**/*.cpp
(do jeito que eu faço quando não uso nenhum makefile)
no windows eu fiz assim:
gcc -std=c++14 -I include -o bin/main src/main.cpp src/Sth.cpp src/SthEl.cpp
porque as expressões regulares parecem não funcionar ou não consegui encontrar uma maneira de fazê-las funcionar...
Você poderia me dizer como fazer isso no Windows?
Responder1
Dependendo de quando você pode usar caminhos absolutos, você pode usar o seguinte código do PowerShell:
$files = (Get-ChildItem -Recurse -Path ./src *.cpp | %{echo $_.FullName}) -Join " "
gcc -std=c++14 -I include -o bin/main $files
Você pode reduzir isso para:
gcc -std=c++14 -I include -o bin/main ((Get-ChildItem -Recurse -Path ./src *.cpp | %{echo $_.FullName}) -Join " ")
Isso não é exatamente tão curto ou legível quanto o seu equivalente no Linux, mas o mais próximo que consigo pensar de chegar ao resultado desejado.
Se você src
tiver uma hierarquia plana, você pode usar:
gcc -std=c++14 -I include -o bin/main src/*.cpp