在rock pi 3A的debian系统上编译open3d的时候,在cmake阶段总是卡在"Unknown ISPC compiler"这个错误这里。
rock pi 3A烧写debian/ubuntu教程:ROCK PI 3A资料
open3d编译过程参考pi4上的编译过程:Pi4 Ubuntu MATE 22.04编译open3d点云库
查了半天,ISPC是intel搞的一个编译器,在Arm64板子上不应该用到这个玩意的。
之前在树莓派Pi4上编译也没用到这个包,所以通过与Pi4上编译逻辑对比发现,是CMakeLists.txt在判断系统架构的逻辑地方出现问题了。
判断架构逻辑执行的是:uname -p,获取平台架构信息。
rock pi 3A输出是unknown; 正常应该输出aarch64
uname信息是编译内核时候固化的,也无法修改。通过uname -a看到信息里面是存在aarch64的,当然定义是machine信息,所以通过:uname -m是可以获得aarch64的。
那么将CMakeLists.txt里面的判断逻辑命令“uname -p” 改成"uname -m"就能解决问题了。
这是一个非常不应该出现的问题,耽误了半天时间,rock pi研发团队得反省一下了!