烤饼u和variantdirs

2024-10-02 00:38:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经和斯科斯一起工作了一段时间了,我面临着一个我无法解决的问题,我希望有人能帮助我。我创建了一个编译基本helloWorld(在主.cpp). 我要做的是使用scons-u命令从“test”文件夹编译二进制文件。我的所有构建都是在一个variant dir中完成的,它最终将在项目的根目录(build文件夹)中创建。你知道吗

这是我的文件夹树:

+sconsTest
       -SConstruct
       + test
                  -SConscript
                  +test2
                             -SConscript
                             -main.cpp
       +build (will eventually be created by scons)

以下是施工规范:

env = Environment()
env.SConscript('test/SConscript', {'env' : env})

以下是测试/SConscript代码:

Import('env')

env = env.Clone()

env.SConscript('test2/SConscript', {'env' : env}, variant_dir="#/build", duplicate=0)

下面是test2/SConscript代码:

Import('env')

env = env.Clone()

prog = env.Program('main', 'main.cpp')

把自己放在“sconsTest/test”文件夹后,我输入scons-u,我希望它能构建我的程序,不过它只说“test”是最新的。什么都不编译的时候。我注意到,当我从test/SConscript中删除variant_dir和duplicate args时,scons-u工作正常。你知道吗

此外,我注意到我可以用这个命令编译程序

scons -u test2

但是,我在一个大型项目中使用scon,我不喜欢给出一个相对路径作为编译项目的参数。我想让scons-u自动构建它在subdirs中找到的所有东西。你知道吗

有人知道如何解决这个问题吗?你知道吗


Tags: 项目代码test命令buildenv文件夹main
1条回答
网友
1楼 · 发布于 2024-10-02 00:38:30

请再次检查MAN page-u选项将只在当前目录或其下构建默认目标。当您位于sconsTest/test时,这将排除您的文件夹sconsTest/build。你知道吗

你要找的是-U选项(大写“U”)。它构建在当前目录的SConscript中定义的所有默认目标,而不管结果目标最终位于哪个目录。你知道吗

相关问题 更多 >

    热门问题