Есть ли причина, по которой это не сработает?
exe my_prog : main.cpp b.cpp ;
Делать это так, как вы хотите, звучит больно и неприятно, особенно для тех, кто только начинает наращивать сборку. Плюс могут быть случаи, когда вам нужен только заголовок, а не cpp.
Если ваш код безупречно организован, и вам нужны только файлы в текущем каталоге, вы можете легко получить все файлы cpp:
exe my_prog : [ glob *.cpp ] ;
(Существуют и другие аргументы для glob, которые позволят вам отфильтровать файлы резервных копий / файлов восстановления, которые может создать ваш редактор. И есть другие версии glob, которые переходят в дочерние каталоги.)
Если у вас есть несколько файлов cpp, необходимых для нескольких конечных исполняемых файлов, вам лучше создать библиотеку с правилом lib
и использовать ее в качестве одного из источников для вашего исполняемого файла.
lib blib : b.cpp ;
exe my_prog : main.cpp blib ;