我正在尝试使用Scons构建一个静态库。 我想要做的就是在名为“build-release”的构建目录中构建目标文件和库文件。
使用VariantDir我可以让scons在build-release目录中构建目标文件,但是libStringUtilities.a仍在当前目录中写入,为什么?
拜托,任何帮助都会很好。
我的文件夹布局如下。
MyLib/
\--- project/
\---- SConstruct
\---- SConscript
\--- src ( source files )
\--- build-release ( build directory)
这是我的Sconscript ......
Import('env')
source_files = Glob('../build-release/*.cc')
object_files = env.Object(source_files)
env.StaticLibrary('StringUtilities',object_files)
...和Sconstruct文件。
import os
env = Environment ( ENV = os.environ )
Export('env')
VariantDir('../build-release','../src',duplicate= False)
SConscript('SConscript')
答案 0 :(得分:0)
如果不自己尝试,请尝试使您的SConstruct文件看起来像这样吗?
import os
env = Environment ( ENV = os.environ )
env.VariantDir('../build-release', '../src',duplicate= False)
env.SConscript('SConscript', 'env')
答案 1 :(得分:0)
我在使用scons(顶层文件夹中的sconstruct和子文件夹中的sconscripts)时通常使用目标文件夹结构,但我认为问题是您在源文件夹中构建库。这就是为什么它会在那里结束。
尝试:
env.StaticLibrary('../build-release/StringUtilities',object_files)