微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Clang libtooling标头错误

如何解决Clang libtooling标头错误

我的使用clang-libtooling的项目由于来自标头的错误而无法编译。 错误是:C:\llvm\llvm\include\llvm\Support\MathExtras.h(372,31): error C4146: unary minus operator applied to unsigned type,result still unsigned,库头中的关联代码是:

/// Gets the minimum value for a N-bit signed integer.
inline int64_t minIntN(int64_t N) {
  assert(N > 0 && N <= 64 && "integer width out of range");

  return -(UINT64_C(1)<<(N-1));
}

我看不到它应该如何编译,但是前一阵子做了。 这可能是我的代码的结果,但是我尝试仅包含标头的编译和空程序,但仍然失败,就像这样。 知道如何解决此问题吗?

解决方法

首先,您应该将错误报告给llvm.org。 C4146是由-sdl编译器选项转换为错误的警告,我相信这是默认的(始终启用)选项。删除编译器选项,该错误将成为警告,并且代码将编译。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。