0

我想使用 Yocto 项目为使用 nvidia tegra k1 处理器的系统构建自定义 Linux,该处理器具有 arm cortex A 15(32 位)和 GPU。此外,需要安装支持 CUDA 的 OpenCV(版本 >= 3.0)。

现在,当 Bitbake 尝试使用 CUDA 编译 OpenCV 时,它会崩溃,因为 nvcc 会引发错误Syntax error: word unexpected (expecting ")")我了解到,如果您尝试运行用于错误系统的 nvcc 二进制文件(例如 64 位系统上的 32 位-nvcc),通常会出现这种情况。所以我猜它只是运行支持目标系统的 nvcc 并因此崩溃。

  1. 我不知道是否需要使用主机系统通常的 x86-64bit-nvcc 或(如果存在)一些交叉编译-nvcc 进行编译。
  2. 我需要知道如何将所述编译器加入到构建 OpenCV 的 bitbake 过程中。
4

1 回答 1

1

我想到了:

  1. 需要使用支持主机架构的 nvcc 二进制文件。要指定目标架构,可以通过交叉编译标志(请参阅http://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/#cross-compilation)。这些是通过 cmake 标志传递的 -DCUDA_NVCC_FLAGS
  2. EXTRA_OECMAKE_append = "-DCUDA_NVCC_EXECUTABLE=${PATH_TO_THE_NVCC_BINARY}"

bbappend 文件中的整个语句可能如下所示

EXTRA_OECMAKE_append = " \
    -DCUDA_NVCC_EXECUTABLE=${NVCC_BINARY} \ 
    -DCUDA_NVCC_FLAGS="--compiler-bindir ${GCC_BINARY}"  \
    "
于 2016-11-07T15:17:35.627 回答