Ubuntu 20.04+CUDA11.4下打包Open3D 0.18.0为deb包失败求助
为Open3D 0.18.0生成Debian包(Ubuntu 20.04 + CUDA 11.4)
你遇到的问题是因为Open3D 0.18.0的CPack配置需要明确指定Debian打包的元数据和生成器,仅启用CPACK_BINARY_DEB=ON不足以触发Debian包生成,默认会 fallback 到tar.xz格式。以下是修正后的步骤:
1. 清理旧构建目录
先移除之前的build目录,避免缓存干扰:
cd .. rm -rf build mkdir build && cd build
2. 配置CMake时添加Debian打包必要参数
执行以下CMake命令,补充Debian包所需的元数据和生成器指定:
cmake \ -DBUILD_CUDA_MODULE=ON \ -DBUILD_COMMON_CUDA_ARCHS=ON \ -DGLIBCXX_USE_CXX11_ABI=ON \ -DPYTHON_EXECUTABLE=/usr/bin/python3 \ -DUSE_SYSTEM_JPEG=ON \ -DCPACK_BINARY_DEB=ON \ -DCPACK_GENERATOR="DEB" \ -DCPACK_DEBIAN_PACKAGE_NAME="open3d-cuda" \ -DCPACK_DEBIAN_PACKAGE_VERSION="0.18.0" \ -DCPACK_DEBIAN_PACKAGE_MAINTAINER="Your Name <your.email@example.com>" \ -DCPACK_DEBIAN_PACKAGE_DEPENDS="libc6, libgcc-s1, libstdc++6, cuda-cudart-11-4, python3" \ -DCPACK_DEBIAN_PACKAGE_SHLIBDEPS=ON \ ..
参数说明:
CPACK_GENERATOR="DEB":明确指定生成Debian格式包,覆盖默认行为CPACK_DEBIAN_PACKAGE_NAME:自定义Deb包名称(可根据需求修改)CPACK_DEBIAN_PACKAGE_VERSION:指定包的版本号CPACK_DEBIAN_PACKAGE_MAINTAINER:Debian包必填字段,填写你的信息CPACK_DEBIAN_PACKAGE_DEPENDS:声明包依赖的系统库和软件,确保安装时自动拉取依赖CPACK_DEBIAN_PACKAGE_SHLIBDEPS:自动检测共享库依赖,简化依赖配置
3. 编译并生成Deb包
执行编译打包命令(无需sudo,打包不需要root权限):
make -j10 package
执行完成后,build目录下会生成类似open3d-cuda_0.18.0_amd64.deb的Debian包文件。
额外注意事项
- 确保已安装必要的打包工具:
sudo apt install build-essential debhelper cmake - 如果仍未生成Deb包,可检查build目录下的
CPackConfig.cmake文件,确认CPACK_GENERATOR是否包含DEB,以及相关Debian参数是否正确设置。
内容的提问来源于stack exchange,提问作者bhomaidan90
相关产品推荐
相关产品推荐

