Jetson Xavier NX JetPack4.6安装GPU版dlib导入报非法指令如何解决
错误根因
Illegal instruction (core dumped)报错的核心原因是 Jetson Xavier NX属于ARM aarch64架构,不支持x86平台专属的AVX指令集,你在编译dlib时主动开启了USE_AVX_INSTRUCTIONS=1参数,导致生成的二进制文件包含了当前平台无法识别的指令,运行时直接触发崩溃。
解决步骤
- 第一步:卸载已安装的错误版本dlib,清空旧编译缓存
sudo pip3 uninstall -y dlib cd /path/to/your/dlib-master # 替换为你本地dlib源码的实际路径 rm -rf build
- 第二步:重新编译安装GPU版dlib,移除AVX相关参数,适配ARM架构
mkdir build && cd build cmake .. -DDLIB_USE_CUDA=1 -DCMAKE_C_FLAGS="-march=native" -DCMAKE_CXX_FLAGS="-march=native" cmake --build . -j$(nproc) cd .. sudo python3 setup.py install --set DLIB_USE_CUDA=1
参数说明:-march=native会让编译器自动识别当前硬件架构,生成适配的指令集,不需要手动指定AVX相关配置
- 第三步:验证安装结果
执行以下命令,输出大于0即代表GPU版dlib安装成功:
python3 -c "import dlib; print(dlib.cuda.get_num_devices())"
额外注意事项
如果安装后仍有异常,可先检查JetPack 4.6的CUDA环境是否正常配置,执行nvcc -V确认能正常输出版本信息即可。
内容的提问来源于stack exchange,提问作者TaCheng Chang
相关产品推荐
相关产品推荐

