ubuntu - 使用 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'
的答案中的建议使用)
非常感谢有关如何处理此错误的任何建议或有关我应该研究什么的提示。
帕特里克
解决方案
您一定错过了一些依赖项。我建议您删除所有内容并尝试重建它并非常仔细地执行每个步骤,并且在您制作 armnn 时使用 make -j4 。您可以用您拥有的核心数替换 4 个。并保持 opencl=0 embed_kernels=0 neon=1 这样会更容易。
推荐阅读
- c++ - 内联静态数据的初始化
- .htaccess - 通配符子域不包括子文件夹
- python - 自动化无聊的东西:为什么这些 Python 函数不做同样的事情?
- android - 使用 NavController 导航回主页 Fragment 卡在新启动的 Fragment
- bash - ubuntu 上的 Flutter 下载错误:'无法执行二进制文件:执行格式错误'
- php - 我在 laravel 6 中需要帮助(同时按名称专业和国家搜索)
- c# - 正则表达式,c# - 如何一次转义所有特殊字符(如 $、^、(、)、+、[、|、\、.、?、/)?
- html - HTML 页脚“边距:自动”问题
- python - 如何将熊猫数据框转换为python中的字典列表?
- git - 漂亮的格式 %S 不能按预期工作