bazel编译报错:absl/base/policy_checks.h:79:2: error: #error "C++ versions less than C++14 are not supported."
使用bazel编译一个软件时报错,报错的信息为:
absl/base/policy_checks.h:79:2: error: #error "C++ versions less than C++14 are not supported."
整个的编译信息为:
devil@hp:~/lab$ bazel build -c opt //:deepmind_lab.so INFO: Build option --cxxopt has changed, discarding analysis cache. WARNING: Download from https://mirror.bazel.build/github.com/glennrp/libpng/archive/v1.6.37.zip failed: class java.io.FileNotFoundException GET returned 404 Not Found DEBUG: Rule 'com_google_absl' indicated that a canonical reproducible form can be obtained by modifying arguments sha256 = "cd8a6aed3682cd6a0330e0c11828254877531109d7bddc9398f504b314ec9128" DEBUG: Repository com_google_absl instantiated at: /home/devil/lab/WORKSPACE:18:13: in <toplevel> Repository rule http_archive defined at: /home/devil/.cache/bazel/_bazel_devil/485f2e56923c3d722a11a1d362ce5e93/external/bazel_tools/tools/build_defs/repo/http.bzl:355:31: in <toplevel> DEBUG: Rule 'bazel_skylib' indicated that a canonical reproducible form can be obtained by modifying arguments sha256 = "a9432ad1582da1dd8a2bcbbdaf11d887b38d97c226207b00471eeb2985576797" DEBUG: Repository bazel_skylib instantiated at: /home/devil/lab/WORKSPACE:12:13: in <toplevel> Repository rule http_archive defined at: /home/devil/.cache/bazel/_bazel_devil/485f2e56923c3d722a11a1d362ce5e93/external/bazel_tools/tools/build_defs/repo/http.bzl:355:31: in <toplevel> INFO: Analyzed target //:deepmind_lab.so (0 packages loaded, 4197 targets configured). INFO: Found 1 target... ERROR: /home/devil/.cache/bazel/_bazel_devil/485f2e56923c3d722a11a1d362ce5e93/external/com_google_absl/absl/types/BUILD.bazel:153:11: Compiling absl/types/bad_optional_access.cc failed: (Exit 1): gcc failed: error executing command /usr/bin/gcc -U_FORTIFY_SOURCE -fstack-protector -Wall -Wunused-but-set-parameter -Wno-free-nonheap-object -fno-omit-frame-pointer -g0 -O2 '-D_FORTIFY_SOURCE=1' -DNDEBUG -ffunction-sections ... (remaining 36 arguments skipped) Use --sandbox_debug to see verbose messages from the sandbox and retain the sandbox build root for debugging In file included from external/com_google_absl/absl/base/config.h:86, from external/com_google_absl/absl/types/bad_optional_access.h:26, from external/com_google_absl/absl/types/bad_optional_access.cc:15: external/com_google_absl/absl/base/policy_checks.h:79:2: error: #error "C++ versions less than C++14 are not supported." 79 | #error "C++ versions less than C++14 are not supported." | ^~~~~ Target //:deepmind_lab.so failed to build Use --verbose_failures to see the command lines of failed build steps. INFO: Elapsed time: 0.426s, Critical Path: 0.26s INFO: 17 processes: 17 internal. FAILED: Build did NOT complete successfully
Google一下,找到相关资料:https://issuehint.com/issue/deepmind/lab/241
解决方案:
虽然Google出了相关的解决方法,但是这个东西到底讲的是怎么具体做还是有些不清楚,后来个人尝试了一下,有了具体的操作:
编辑home下文件.bazelrc (该文件一般都是预先不存在的,编辑后直接保存即可)
填写内容:
build --cxxopt=-std=c++14
再次执行编译,顺利通过:
===============================================
相关资料:
本博客是博主个人学习时的一些记录,不保证是为原创,个别文章加入了转载的源地址,还有个别文章是汇总网上多份资料所成,在这之中也必有疏漏未加标注处,如有侵权请与博主联系。
如果未特殊标注则为原创,遵循 CC 4.0 BY-SA 版权协议。
posted on 2022-10-03 08:51 Angry_Panda 阅读(1423) 评论(0) 编辑 收藏 举报