【发布时间】:2020-06-19 07:03:58
【问题描述】:
我为我的主机系统 x86_64 (Ubuntu 18.04) 上的 ARM Cortex-A9 (Debian 9) 设备交叉编译了 ARMNN。
我已经成功构建了 ARMNN 及其所有依赖项,没有任何错误,但是当我尝试在 Cortex-A9 上运行示例 mnist 时,它给出了以下错误:
duu@34d456-45433g:~/ML-examples/armnn-mnist$ make test
arm-linux-gnueabihf-g++ -O3 -std=c++14 -I/home/duu/armnn/armnn/include mnist_caffe.cpp -o mnist_caffe -L/home/duu/build -larmnn -larmnnCaffeParser
/home/admin/build/libarmnn.so: undefined reference to `exp2f@GLIBC_2.27'
/home/admin/build/libarmnn.so: undefined reference to `logf@GLIBC_2.27'
/home/admin/build/libarmnn.so: undefined reference to `log2f@GLIBC_2.27'
/home/admin/build/libarmnn.so: undefined reference to `powf@GLIBC_2.27'
/home/admin/build/libarmnn.so: undefined reference to `expf@GLIBC_2.27'
collect2: error: ld returned 1 exit status
Makefile:12: recipe for target 'mnist_caffe' failed
make: *** [mnist_caffe] Error 1
后来我发现该设备应该具有相同的编译器和相同的 GLIBC 包,两者都具有与编译库的主机相同的版本。
我在主机上使用 gcc-6.4.0 和 glibc-2.27 编译了 ARMNN,在 Cortex-A9 设备上使用 gcc-6.3.0 和 glibc-2.24。
我设法匹配了 GCC 版本并解决了编译器错误,但我无法在 Ubuntu 18.04 和 debian 9 上找到匹配的 GLIBC 版本。
有没有什么方法可以在两个系统中安装一个通用的 GLIBC 版本?
附: :非常感谢任何其他解决此问题的方法。
【问题讨论】:
标签: makefile cross-compiling ubuntu-18.04 glibc armv7