Unix SCons二进制目录

Unix SCons二进制目录,unix,scons,Unix,Scons,如何在SCON中指定二进制/可执行目录?很容易做到以下几点: Program( target = 'bin/helloworld', source = 'src/helloworld.cc' ) 这种方法的问题是在尝试进行跨平台构建时。下面是一个有效的示例: StaticLibrary( target = 'helloworld', source = 'src/helloworldlib.cc' ) Unix系统上的输出是一个名为libhelloworld.a的库。下面是一个不起作用的示例:

如何在SCON中指定二进制/可执行目录?很容易做到以下几点:

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系统上的输出是目录库中的文件helloworld.a。当LIBS被指定为['helloworld']时,这会导致问题,这是一种跨平台的方法

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

建议您在源目录中使用变体目录和SConscript文件。在您的示例中,在
src
目录中放置一个SConscript文件:

StaticLibrary(target="helloworld", source="helloworldlib.cc")
并从主SConstruct文件调用:

SConscript("src/SConscript", variant_dir="lib")
建议在源目录中使用variant目录和SConscript文件。在您的示例中,在
src
目录中放置一个SConscript文件:

StaticLibrary(target="helloworld", source="helloworldlib.cc")
并从主SConstruct文件调用:

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

变体不能控制这一点。这取决于SCon*文件位于何处。Variant不控制这一点。这取决于SCon*文件所在的位置。