scons: objects, sources, executables, all in separate directories
我是 scons 的新手,我设法弄清楚如何将一个 (con) 脚本生成的二进制文件(可执行对象)重定向到另一个目录。
在我的主项目目录(根目录)中,我有一个
1
|
SConscript("source/SConscript", variant_dir="bin")
|
显然,它将
1
2 3 4 5 |
common = []
env = Environment() |
我目前的设置不太理想…
我希望所有的目标文件都在
如何使用 scons 实现这一目标? (最好不要弄乱命令式(常规)Python,我希望这是一个内置功能。)
您可以通过为对象添加另一个 SConscript 脚本来做到这一点,您将在其中将 variant_dir 设置为不同的目录,它看起来像这样:
S构造
1
2 3 4 5 |
env = Environment()
SConscript(‘source/SConscript_obj’, variant_dir=‘object’, duplicate=0, exports=‘env’) SConscript(‘source/SConscript’, variant_dir=‘bin’, duplicate=0, exports=‘env’) |
源/SConscript_obj
1
2 3 4 |
Import(‘env’)
env.Object("test.cpp") |
来源/SConscript
1
2 3 4 |
Import(‘env’)
env.Program("test", ["#/object/test.o"]) |
或者,在 SConscript_obj 中,您可以创建一个库,而不仅仅是编译对象。
您也可以考虑在现有的 SConscript 中添加对 VariantDir 的调用,但我不确定它的效果如何。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/python/267847.html