4

我正在尝试使用 SCons 构建一个依赖于库的软件,该库在系统中安装的源中可用。例如在/usr/share/somewhere/src. *.cpp在该目录中应该内置到静态库中并与我自己的代码链接。图书馆资源中没有SConscript

由于库在系统目录中,我没有权限,也不想将构建工件放在/usr. /tmp.build在当前工作目录中是可以的。我怀疑这很容易做到,但我已经被所有这些SConscriptsVariantDirs.

env = Environment()
my_things = env.SConscript('src/SConsctipt', variant_dir='.build/my_things')
sys_lib = env.SConscript(????)
result = env.Program('result', [my_things, sys_lib])

解决 SCons 问题的预期方法是什么?

4

1 回答 1

3

您可以使用存储库来执行此操作。例如,在您的 SConstruct 中,您可以编写:

sys_lib = env.SConscript("external.scons", variant_dir=".build/external")

然后在external.scons文件中(在您的源代码树中),添加外部源代码树的路径以及如何在其中构建库。

env = Environment()
env.Repository("/usr/share/somewhere/src")
lib = env.Library("library_name", Glob("*.cpp"))
Return("lib")
于 2010-04-07T18:18:26.053 回答