如何从linux二进制文件中存储和检索数据 < >我使用ARMNO-E-ULINUX GNUEABI+ G+来编译一个在嵌入式Linux设备上运行的C++代码。
我在windows下使用arm-none-linux-gnueabi-g++并获得将在linux机器上运行的二进制文件作为输出 为了使用新的二进制文件设置嵌入式设备,我需要使用二进制文件和一些其他设置文件创建一个存档文件zip 到目前为止一切都还好 我需要将其自动化,以便以二进制文件版本的名称自动创建归档文件 目前,我们在代码中只将该版本作为一个简单的常量std::string变量。我们在打印诊断、日志等时使用该字符串 如何从版本二进制文件中读取它 或者可以采用其他方法来实现这一目标如何从linux二进制文件中存储和检索数据 < >我使用ARMNO-E-ULINUX GNUEABI+ G+来编译一个在嵌入式Linux设备上运行的C++代码。,c++,linux,windows,C++,Linux,Windows,我在windows下使用arm-none-linux-gnueabi-g++并获得将在linux机器上运行的二进制文件作为输出 为了使用新的二进制文件设置嵌入式设备,我需要使用二进制文件和一些其他设置文件创建一个存档文件zip 到目前为止一切都还好 我需要将其自动化,以便以二进制文件版本的名称自动创建归档文件 目前,我们在代码中只将该版本作为一个简单的常量std::string变量。我们在打印诊断、日志等时使用该字符串 如何从版本二进制文件中读取它 或者可以采用其他方法来实现这一目标 我想把它存
我想把它存储在二进制文件中的某个固定位置,然后从那里读取,但我真的不知道如何在不损坏二进制文件的情况下做到这一点。您是自动创建文件的,因此我假设您首先编译它,然后使用生成的二进制文件进行存档 您可以将版本存储在文本文件中,并将该文件包含在代码中:
const std::string version =
#include "version.txt"
;
在version.txt中:
在制作归档文件时,您可以轻松地从文本文件解析版本。Ville是正确的
您当前正在反向执行此操作
构建系统应该为可执行文件提供版本,而不是相反。修复后,构建系统可以为其他元素(例如ZIP文件名)提供相同的版本
理想情况下,版本将自动从版本控制生成,但如果确实需要,可以在build命令中指定它
如果有Windows等价物,可以从二进制文件中提取一些字符串,但这实际上是相反的方法。我实际上会用一个用-d传递的宏来完成,但是的。这确实是一个简单而好的答案!了解如何将一些数据存储到二进制可执行文件中并将其读回仍然很有趣
"version string"