Есть ли замена для

**/*.*
**/*.cpp

так что я могу сделать что-то вроде этого:

gcc -std=c++14 -I ./include/ -o ./bin/main ./src/**/*.cpp

(путь, которым я иду, когда я не использую make-файл)

на окнах я сделал это так:

gcc -std=c++14 -I include -o bin/main src/main.cpp src/Sth.cpp src/SthEl.cpp

потому что регулярные выражения не работают или я не смог найти способ заставить их работать ...

Не могли бы вы сказать мне, как это сделать на Windows?

1 ответ1

0

В зависимости от того, когда вы можете использовать абсолютные пути, вы можете использовать следующий фрагмент кода 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .