gpt4 book ai didi

scons - 如何清除scons缓存? CheckLibWithHeader 第一次调用返回 "no",第二次调用返回 "yes"

转载 作者:行者123 更新时间:2023-12-04 23:21:12 24 4
gpt4 key购买 nike

我有一个正在检查 Google protobuf 库的 SConstruct 文件,如下所示:

main['HAVE_PROTOBUF'] = main['PROTOC'] and \
conf.CheckLibWithHeader('protobuf', 'google/protobuf/message.h',
'C++', 'GOOGLE_PROTOBUF_VERIFY_VERSION;')

我注意到这个对 CheckLibWithHeader 的调用返回“no”。我正在对脚本进行一些调试,很明显,随后对 CheckLibWithHeader 的相同调用返回了"is"。当我在 SConstruct 文件中紧跟在上面一行之后放置相同的行时,输出如下:
.
.
.
Checking for accept(0,0,0) in C++ library None... (cached) yes
Checking for zlibVersion() in C++ library z... (cached) yes
Checking for GOOGLE_PROTOBUF_VERIFY_VERSION in C++ library protobuf... (cached) no
Checking for GOOGLE_PROTOBUF_VERIFY_VERSION in C++ library protobuf... (cached) yes
Checking for clock_nanosleep(0,0,NULL,NULL) in C library None... no
Checking for clock_nanosleep(0,0,NULL,NULL) in C library rt... yes
.
.
.

我确实有 protobuf 库。有谁知道为什么第一次调用 CheckLibWithHeader 返回“no”?

对我来说这个问题发生在 CentOS 中,但不在 Ubuntu 中。

更新:我无法再重现上述问题。但是,我发现当我遇到使用标记为“(缓存)”的值的 scon 问题时,该值似乎不正确,我可以做两件事来帮助找到解决方案。我会将这些放在下面的答案中。

最佳答案

--config=force命令行选项应该重新运行所有配置测试而不查看缓存的结果。根据man page for SCons :

--config=force

If this option is specified, all configuration tests will be re-run
regardless of whether the cached results are out of date. This can
be used to explicitly force the configuration tests to be updated in
response to an otherwise unconfigured change in a system header file
or compiler.

关于scons - 如何清除scons缓存? CheckLibWithHeader 第一次调用返回 "no",第二次调用返回 "yes",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26245218/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com