使用 GCC on Arm 将资源嵌入到可执行文件中?

Embedding resources into executable using GCC on Arm?

我使用以下 linker 命令将 TensorFlow 模型文件 myv2.tflite 转换为“虚拟”对象文件 myv2.o,这样我就可以 link将其放入可执行文件中,以避免必须单独拖动此文件:

ld --relocatable --format=binary --output=myv2.o myv2.tflite

我在 Ubuntu x86_64 上完成了此操作。但是,我需要为 Arm 做同样的事情。我想我不能重复使用相同的 myv2.o?我是否必须使用来自适当 Arm 工具链的 ld 在 Arm 上重新生成文件?

I suppose I cannot reuse the same myv2.o?

你不能那样;文件是一个 ELF 64 位 x86_64 ABI 目标文件,你的目标架构需要它

Do I have to regenerate the file on Arm

不,没有理由 ld 需要 运行 在 ARM 机器上,

using ld from an appropriate Arm toolchain?

确切地说,只需将 ld 替换为您正确定位的链接器,例如arm-none-eabi-ld 如果这是针对裸机的。同样,这是正常的 cross-development:不需要 运行 on 目标架构,只需构建 for 目标架构.