SCons二进制目录

时间:2011-01-14 17:11:07

标签: unix scons

如何在SCons中指定二进制/可执行文件目录?它很容易做到如下:

Program( target = 'bin/helloworld', source = 'src/helloworld.cc' )

这种方法的问题在于尝试进行跨平台构建时。这是一个有效的例子:

StaticLibrary( target = 'helloworld', source = 'src/helloworldlib.cc' )

Unix系统上的输出是一个名为libhelloworld.a的库。它不起作用的示例如下:

StaticLibrary( target = 'lib/helloworld', source = 'src/helloworldlib.cc' )

Unix系统上的输出是目录lib中的文件helloworld.a。当LIBS被指定为['helloworld']时,这会导致问题,这是跨平台的方式。

要传递给StaticLibrary,SharedLibrary和Program以将二进制文件输出到基本目录以外的目录中的参数名是什么?

1 个答案:

答案 0 :(得分:1)

manual建议您在源目录中使用variant目录和SConscript文件。在您的示例中,将SConscript文件放在src目录中:

StaticLibrary(target="helloworld", source="helloworldlib.cc")

并从主SConstruct文件中调用它:

SConscript("src/SConscript", variant_dir="lib")