【发布时间】:2018-03-14 06:41:42
【问题描述】:
尝试使用 Bazel 构建 Tink 库 (https://github.com/google/tink)。已安装 Bazel,gcc 版本 7.2.0,Windows 10 x64。视觉 C++ 2017。
起初,出现了诸如“规则'@boringssl//:crypto'的C++编译失败”之类的错误-我在boringssl / BUILD文件(部分boringssl_copts,boringssl_copts_c11)中评论了这些行(我认为带有编译标志),他们消失了。
但在那之后,bazel 说,那个错误在 errors.h 文件中 (https://github.com/google/tink/blob/master/cc/util/errors.h)
// from #include "absl/base/port.h"
#define PRINTF_ATTRIBUTE(string_index, first_to_check) \
__attribute__((__format__ (__printf__, string_index, first_to_check)))
// Constructs a Status object given a printf-style va list.
crypto::tink::util::Status ToStatusF(
crypto::tink::util::error::Code code, const char* format, ...)
PRINTF_ATTRIBUTE(2, 3);
} // namespace tink
} // namespace crypto
enter code here
错误 C3646:第 32 行上的未知覆盖说明符(带有“PRINTF_ATTRIBUTE(2, 3);”的行)。最可怕的是,在另一个文件中,相同的代码(定义相同的属性)正在工作。
此文件中还有另一个错误,但提到的是第一个(另一个大约在同一行,所以我猜它们是第一个的后果)。
我几乎是 cpp 的新手,但应该只使用 cpp,而不是 java 版本的库。
感谢您的帮助,对于可能出现的格式错误和英文错误,我们深表歉意 - 这是我在这里的第一个问题。
【问题讨论】:
-
您是否在 Tink 的 GitHub 问题跟踪器上创建了问题?您可能会在那里获得更好的知名度。
-
不,时间很重要。现在使用 Crypto++。