首页 > 解决方案 > 使用 caffe 解析器支持构建 armNN 的问题

问题描述

我已经有一段时间了。主要遵循本教程。我已经在指令所需的版本中构建了依赖项,包括 boost 和 caffe 的 2 个主要部分(它们都需要许多其他依赖项)。我在全新安装的 Ubuntu 19.10 上运行整个程序(专门为此项目在 VM 上设置)。当我构建 armNN 库时(说明部分“构建环境”,第 4 步),它无法以 ~45% 的速度链接 libarmnn.so,并出现以下错误输出:

/usr/bin/ld: */path/to/boost*/boost_1_64_0/stage/lib/libboost_log.a(attribute_name.o): relocation R_X86_64_PC32 against symbol `_ZTVN5boost16exception_detail19error_info_injectorINS_3log12v2s_mt_posix16limitation_errorEEE' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status
make[2]: *** [libarmnn.so.19.11] Error 1
make[1]: *** [CMakeFiles/armnn.dir/all] Error 2
make: *** [all] Error 2

我已经用 cxx 和 c 标志 -fPIC 构建了整个 boost 库。我专门检查了有问题的文件(按照这个问题ar -x libboost_log.a readelf --relocs attribute_name.o | egrep 'PLT'的答案中的建议使用)

非常感谢有关如何处理此错误的任何建议或有关我应该研究什么的提示。

帕特里克

标签: ubuntumachine-learningmakefilecmakearm

解决方案


您一定错过了一些依赖项。我建议您删除所有内容并尝试重建它并非常仔细地执行每个步骤,并且在您制作 armnn 时使用 make -j4 。您可以用您拥有的核心数替换 4 个。并保持 opencl=0 embed_kernels=0 neon=1 这样会更容易。


推荐阅读