如何在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以将二进制文件输出到基本目录以外的目录中的参数名是什么?
答案 0 :(得分:1)
manual建议您在源目录中使用variant目录和SConscript文件。在您的示例中,将SConscript文件放在src
目录中:
StaticLibrary(target="helloworld", source="helloworldlib.cc")
并从主SConstruct文件中调用它:
SConscript("src/SConscript", variant_dir="lib")