
¿Existe un reemplazo para
**/*.*
**/*.cpp
para poder hacer algo como esto:
gcc -std=c++14 -I ./include/ -o ./bin/main ./src/**/*.cpp
(la forma en que voy cuando no uso ningún archivo MAKE)
En Windows lo hice de esta manera:
gcc -std=c++14 -I include -o bin/main src/main.cpp src/Sth.cpp src/SthEl.cpp
porque las expresiones regulares parecen no funcionar o no pude encontrar una manera de hacerlas funcionar...
¿Podrías decirme cómo hacerlo en Windows?
Respuesta1
Dependiendo de cuándo pueda usar rutas absolutas, puede usar el siguiente código de PowerShell:
$files = (Get-ChildItem -Recurse -Path ./src *.cpp | %{echo $_.FullName}) -Join " "
gcc -std=c++14 -I include -o bin/main $files
Es posible que puedas acortarlo a:
gcc -std=c++14 -I include -o bin/main ((Get-ChildItem -Recurse -Path ./src *.cpp | %{echo $_.FullName}) -Join " ")
Esto no es exactamente tan breve ni tan legible como su equivalente de Linux, pero es lo más cercano que se me ocurre para llegar al resultado deseado.
Si src
tiene una jerarquía plana, puede usar:
gcc -std=c++14 -I include -o bin/main src/*.cpp