You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在l4t-base:r32.5.0 Docker镜像中从源码编译Open3D?

L4T R32.5.0 ARM架构编译Open3D 0.13.0方案

完整可运行Dockerfile

FROM dustynv/ros:foxy-ros-base-l4t-r32.5.0
WORKDIR /workspace

# 安装基础编译依赖
RUN apt-get update && apt-get install -y --no-install-recommends \
    build-essential \
    gfortran \
    libopenblas-dev \
    liblapack-dev \
    liblapacke-dev \
    xorg-dev \
    libglu1-mesa-dev \
    wget \
    && rm -rf /var/lib/apt/lists/*

##########################
### CMAKE安装配置 ###
##########################
RUN wget https://github.com/Kitware/CMake/releases/download/v3.20.6/cmake-3.20.6-linux-aarch64.tar.gz && \
    tar -xzf cmake-3.20.6-linux-aarch64.tar.gz && \
    mv cmake-3.20.6-linux-aarch64 cmake && \
    rm cmake-3.20.6-linux-aarch64.tar.gz

# 全局暴露cmake命令,适配Docker非交互执行环境
ENV PATH="/workspace/cmake/bin:${PATH}"

#################################
### Open3D 0.13.0编译安装 ###
#################################
RUN wget https://github.com/isl-org/Open3D/archive/refs/tags/v0.13.0.tar.gz && \
    tar -xzf v0.13.0.tar.gz && \
    mv Open3D-0.13.0 open3d && \
    rm v0.13.0.tar.gz

RUN cd open3d && mkdir build && cd build && \
    cmake \
    -DCMAKE_BUILD_TYPE=Release \
    -DBUILD_SHARED_LIBS=ON \
    -DBUILD_CUDA_MODULE=OFF \
    -DBUILD_GUI=OFF \
    -DBUILD_TENSORFLOW_OPS=OFF \
    -DBUILD_PYTORCH_OPS=OFF \
    -DBUILD_UNIT_TESTS=OFF \
    -DCMAKE_INSTALL_PREFIX=/usr/local/open3d_install \
    -DPYTHON_EXECUTABLE=/usr/bin/python3 \
    # ARM架构专属编译参数,修复对应报错
    -DCMAKE_ASM_NASM_COMPILER=FALSE \
    -DCMAKE_C_FLAGS=-pthread \
    -DCMAKE_CXX_FLAGS=-pthread \
    -DCMAKE_EXE_LINKER_FLAGS="-lpthread -lm" \
    -DBUILD_SIMD_NEON=ON \
    -DBUILD_WEBRTC=OFF \
    -DBUILD_LIBREALSENSE=OFF \
    .. && \
    make -j$(nproc) && \
    make install

# 配置Open3D全局环境变量
ENV PATH="/usr/local/open3d_install/bin:${PATH}"
ENV LD_LIBRARY_PATH="/usr/local/open3d_install/lib:${LD_LIBRARY_PATH}"
ENV PYTHONPATH="/usr/local/open3d_install/lib/python3.8/site-packages:${PYTHONPATH}"

关键修改说明

  • 补全基础编译依赖和线性代数库:新增安装build-essential、gfortran、libopenblas-dev、liblapack-dev、liblapacke-dev,解决BLAS、LAPACK相关函数未定义的报错
  • 修复cmake命令生效问题:将原有的alias配置改为通过ENV全局暴露cmake路径,适配Docker非交互执行环境的特性
  • 跳过x86专属NASM汇编检测:新增-DCMAKE_ASM_NASM_COMPILER=FALSE参数,ARM架构无需NASM编译器,直接跳过检测逻辑
  • 显式指定pthread链接参数:新增-DCMAKE_C_FLAGS=-pthread、-DCMAKE_CXX_FLAGS=-pthread、-DCMAKE_EXE_LINKER_FLAGS="-lpthread -lm"参数,解决pthread函数未定义的链接错误
  • 优化ARM架构适配:新增-DBUILD_SIMD_NEON=ON启用ARM专属NEON指令集优化,新增-DBUILD_WEBRTC=OFF、-DBUILD_LIBREALSENSE=OFF禁用兼容性差的非必要模块,降低编译复杂度

编译运行注意事项

  • Jetson Xavier NX设备编译时建议提前开启至少4G交换分区,避免内存不足导致编译中断
  • 若需要CUDA加速支持,可将-DBUILD_CUDA_MODULE=OFF参数修改为-DBUILD_CUDA_MODULE=ON,需确保基础镜像中已包含完整CUDA Toolkit
  • 编译完成后可通过python3 -c "import open3d; print(open3d.__version__)"验证Python绑定是否安装成功

内容的提问来源于stack exchange,提问作者kronos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 15:36:02