1.用arm-hisiv100nptl-linux-gcc编译代码,结果发现报错,__aeabi_unwind_cpp_pr1重定义,在librt.a先定义,使用的海思芯片是hi3520d。
2.本来以为是编译链冲突所致,工具链删了又装,只保留一个,还是不行,装的是toolchain_hisi_linux_nptl_install.tgz
3.后来发现在Hi3520_SDK_1.0.5.0中也有工具链,还有三种,分别是hisiv100,hisiv200,hisiv100nptl,就使用SDK包osdrv中的toolchain的hisiv100nptl,运行其目录下的cross.install文件,安装arm-hisiv100nptl-linux-gcc编译器。
4.装完发现程序就编译正确,运行OK了。
5.说明海思的编译链冲突也许是不存在的,说是很多编译链安装时候会用软连接导致删除不干净,因此很多人采取一个编译链一个虚拟机的方式,防止编译工具链冲突。
6.此处说明toolchain_hisi_linux_nptl_install.tgz也许本身就有问题,建议使用hisi官方提供的SDK中的cross.install来安装编译工具链。