Я искал и искал, но не могу найти ответа на свой вопрос. Я только начал учить бра сегодня вечером, и это выглядит потрясающе! Однако я немного запутался.
Для простоты разработки мне часто нравится, когда мой make-файл создает мою цель, а затем запускает ее, чтобы я мог протестировать изменение одним нажатием клавиши. Это очень просто сделать в файле make:
run: $(exe)
chmod a+x $(exe)
$(exe)
Я понял, что могу сделать это с помощью подпроцесса следующим образом:
import subprocess import os.path
env = Environment();
result = env.Program(target = "FOO", source = "BAR");
location = os.path.abspath(result[0].name)
subprocess.call([location])
Но есть проблема с этим решением. Насколько я экспериментировал, scons не будут ждать, пока ваша программа завершит сборку, прежде чем запускать вызов подпроцесса, поэтому вы в конечном итоге запускаете старый исполняемый файл или получаете ошибку, если это сборка после очистки.