【问题标题】:cross-compile c++-File: File format not recognized交叉编译 c++-File:文件格式无法识别
【发布时间】:2019-09-02 08:35:53
【问题描述】:

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

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

arm-linux-gnueabihf-g++ main.cpp onnx.proto3.pb.cc -o readonnx pkg-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 的符号链接

【问题讨论】:

    标签: arm g++ protocol-buffers onnx


    【解决方案1】:

    我已经解决了这个问题。你必须为 arm 编译 protobuf-compiler。

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

    现在可以正常使用了。

    谢谢

    【讨论】:

    • 您的解决方案也解决了我交叉编译 sqlite3 的问题。我在 Eclipse 中遇到了同样的错误:文件格式无法识别
    【解决方案2】:

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

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

    【讨论】:

    • 如何交叉编译这个库?
    猜你喜欢
    • 2014-09-26
    • 1970-01-01
    • 2011-05-25
    • 2021-01-13
    • 2015-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多