尝试使用Bazel构建Tink库(https://github.com/google/tink)。已安装Bazel,gcc版本7.2.0,Windows 10 x64。 Visual 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版本。

感谢您的帮助,对于可能的格式错误和英语损坏,我们深感抱歉-这是我在这里的第一个问题。

最佳答案

不幸的是,我们暂时不支持Windows。我们计划在明年支持该功能,请参阅feature roadmap

08-06 12:43