cmake - 使用 Clang 使用 Bazel 构建 OpenCV
问题描述
tl;nvcc 博士在构建 OpenCV 时抱怨 Clang 版本。我如何避免首先调用 nvcc?
我已经使用 Bazel 在 Bazelrules_foreign_cc
中构建了一个 CMake 项目(OpenCV 4.2)。IE
cmake(
name = "opencv_lib",
additional_inputs = ["@opencv_contrib//:modules"],
cache_entries = {
"BUILD_SHARED_LIBS": "ON",
"BUILD_LIST": "cudev, cudawarping, cudnn, core, highgui,imgcodecs,imgproc",
"WITH_CUDA": "ON",
"WITH_CUDNN": "ON",
"WITH_OPENMP": "OFF",
"OPENCV_EXTRA_MODULES_PATH": "$$EXT_BUILD_ROOT$$/external/opencv_contrib/modules",
"CUDA_ARCH_BIN": "'7.0 7.2 7.5'",
"WITH_TIFF": "OFF",
"WITH_WEBP": "OFF",
"CMAKE_HOST_COMPILER": "/usr/bin/clang++-11",
"CMAKE_CUDA_HOST_COMPILER": "/usr/bin/clang++-11",
"CMAKE_CUDA_COMPILER_ID": "Clang",
"CMAKE_CUDA_COMPILER": "Clang",
},
我已将 CMAKE_CUDA_HOST_COMPILER 和 CMAKE_HOST_COMPILER 设置为 clang,并且构建输出显示 Clang 正在用于 C 和 C++ 编译。
- The CXX compiler identification is Clang 11.1.0
-- The C compiler identification is Clang 11.1.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/clang-11 - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/clang-11 - skipped
-- Detecting C compile features
-- Detecting C compile features - done
似乎 Clang 正在通过 NVCC 调用,如下面的错误所示。
nvcc fatal : The version ('11.1') of the host compiler ('clang') is not supported
非常感谢任何有关避免调用 NVCC 的帮助,因为此版本的 NVCC 没有避免不兼容编译器警告的选项。
解决方案
推荐阅读
- sas - 如何将一个表中的每一行与另一个表中的列进行比较?
- vue.js - vue-router 的 beforeEach 方法的无限循环
- html - 我在 html css bootstrap 中的 DROPDOWN 菜单不起作用
- c - 读取文件行并分配给线程
- npm - 尝试使用 tailwind 构建一个简单的 webpack,出现未知单词错误
- apache-spark - 在 pyspark 中使用管道运算符后收集问题
- python - discord.py 重写删除作者信息
- node.js - 如何检查 AWS Lambda 和 Elasticbeanstalk 中的次要 Node.js 版本?
- c# - 如何使用 c# 套接字从外部网络计算机或同一网络内连接到我的本地服务器
- c - 哪个代码效率更高,额外的 If 语句或重复的函数