3

我尝试从 linux-ubuntu-vm 交叉编译用于 arm 处理器的 c++ 代码。

正常的编译工作没有错误。当我尝试以下命令时,出现错误:

arm-linux-gnueabihf-g++ main.cpp onnx.proto3.pb.cc -o readonnxpkg-config --cflags --libs protobuf

--> /usr/local/lib/libprotobuf.so: 文件无法识别: 文件格式无法识别 collect2: 错误: ld 返回 1 退出状态

如何为 Intel Cyclone V (Linux Angstrom) 编译我的代码?

文件 /usr/local/lib/libprotobuf.so

--> /usr/local/lib/libprotobuf.so:到 libprotobuf.so.20.0.0 的符号链接

4

2 回答 2

3

我已经解决了这个问题。您必须为 arm 编译 protobuf 编译器。

sudo ./configure --prefix=/usr/local/lib_arm --host=arm-linux-gnueabihf CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++

现在它工作正常。

谢谢

于 2019-09-11T06:01:49.603 回答
0

您还需要交叉编译libprotobuf.so库文件。

目前您正在尝试链接libprotobuf.so安装在您的主机系统上的那个,它可能是 x86 版本,因此对于 ARM 编译器是未知的。

于 2019-09-02T18:06:25.793 回答