scons - 如何防止 scons 清理父目录和同级目录?

标签 scons

我正在使用 scons 为一个较大的软件项目实现构建系统。有一个目录结构将各个库和程序的代码分离到它们自己的目录中。使用我们现有的 make 系统,我可以在单个程序目录中执行“make clean”,它只会清除与该目录中的源关联的文件。但是,如果我执行“scons -c”,它会识别出该程序依赖于同级(或堂兄弟)目录中的大量库,并且也会清除这些库的所有文件。这不是我想要的,因为我必须重建所有这些库,这可能需要几分钟时间。

我试过使用“NoClean()”命令,但没有让它按照我需要的方式工作。考虑到代码库的大小和目录结构的复杂性,我不可能为每个库中的每个文件都设置一个 NoClean() 行。

有什么方法可以告诉 scons 在执行清理时忽略当前目录之上的任何依赖项(即 scons -c)?

最佳答案

我很想自己对此有一个好的答案。

目前我能提供的唯一解决方案是让 Noclean 正常工作。 所以在你的图书馆里,你应该有这样的东西

lib_objs = SharedObject(source_list)
mylib = SharedLibrary('libname', lib_objs)

为此,我们希望保护库和源不被清理。

NoClean([mylib, lib_objs])

请注意,我必须将目标文件的构建与库分开,因为我也希望能够将它们传递给 NoClean。

关于scons - 如何防止 scons 清理父目录和同级目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19573166/

相关文章:

c++ - 如何告诉 scons 使用 C++11 标准

c - 强制 scons 中出现 "undefined symbol"编译时错误

shared-libraries - 如何在 SConstruct 中包含共享库?

c++ - 如何使用 scons 和 Visual C++ 链接到使用静态库本身的静态库?

scons ccflags 和 shccflags 之间的区别

c++ - 如何在 scons 中添加 --whole-archive 链接器选项?

windows - 如何从 Windows Batch 子程序调用 SCons?

mongodb - 使用 SSL RedHat 构建 MongoDB 失败 : collect2: ld returned 1 exit status

time - 以 SCons 计算构建耗时

c++ - Ubuntu下没有libmongoclient.a