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

JetPack4.6下Jetson Xavier NX安装GPU版dlib出现undefined symbol报错

问题根因
  • 编译参数错误:ARM架构的Jetson系列设备不支持x86平台专属的AVX指令集,你在编译时添加的-DUSE_AVX_INSTRUCTIONS=1参数会直接触发非法指令报错。
  • 依赖库版本不兼容:JetPack 4.6自带的libpng版本未实现png_riffle_palette_neon符号,dlib默认调用该Neon优化接口时会出现动态链接失败的问题。
可行解决步骤

首先卸载已安装的错误版本dlib并清理缓存:

pip3 uninstall dlib -y
cd dlib-master
rm -rf build dlib.egg-info dist
python3 setup.py clean --all

方法一:调整编译参数重新编译(推荐)

不需要修改系统依赖,仅调整dlib编译参数即可解决问题:

  1. 执行cmake编译配置,去掉AVX参数,新增禁用PNG Neon优化的参数:
mkdir build && cd build
cmake .. -DDLIB_USE_CUDA=1 -DPNG_ARM_NEON=off
cmake --build . -j$(nproc)
  1. 退回源码根目录执行安装,保持参数一致:
cd ..
sudo python3 setup.py install --set DLIB_USE_CUDA=1 --set PNG_ARM_NEON=off
  1. 验证安装:执行python3 -c "import dlib; print(dlib.cuda.get_num_devices()),正常输出GPU设备数量即为安装成功。

方法二:升级libpng版本适配

如果需要保留PNG Neon优化性能,可升级系统libpng到1.6.37及以上版本,该版本已实现缺失的符号:

  1. 编译安装高版本libpng:
wget https://sourceforge.net/projects/libpng/files/libpng16/1.6.37/libpng-1.6.37.tar.gz
tar -zxvf libpng-1.6.37.tar.gz
cd libpng-1.6.37
./configure --prefix=/usr/local --enable-arm-neon=yes
make -j$(nproc)
sudo make install
sudo ldconfig
  1. 按正常流程重新编译dlib,仅需去掉AVX参数即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 10:45:01