0

我正在开发一个使用nanomsg板条箱的项目。crate 依赖于 nanomsg 库本身,它是一个本地库。到目前为止,一切都很好。

当我使用以下命令交叉编译项目以定位树莓派时,问题就来了:

cargo build --target=armv7-unknown-linux-gnueabihf

尝试使用以下错误链接 nanomsg 库时构建失败:

error: linking with `arm-linux-gnueabihf-gcc-5` failed: exit code: 1
...
  = note: /usr/local/lib/libnanomsg.so: file not recognized: File format not recognised
          collect2: error: ld returned 1 exit status

我已经预先为我的机器配置了这样的交叉编译,并确认它可以与一个简单的 hello world 项目一起使用。

一些搜索错误消息指向库的 64 位与 32 位问题。我安装的 nanomsg 库是 64 位的,是从源代码构建的。

有没有办法告诉 cargo 静态链接该库并在运行时解析它?如果我在我的机器上安装一个 32 位版本的库,cargo 会简单地“捡起来”并且交叉编译会成功吗?

4

0 回答 0