使用 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 目标架构.
我使用以下 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 目标架构.