我想知道这样做的标准方法是什么。
目前我正在考虑在头文件中添加一系列定义,并在主资源文件win win32中使用该文件来更新win32中的版本资源,并在* nix中创建一些全局函数来返回此信息。< / p>
并且在windows中使msi安装文件也反映了相同的版本。
答案 0 :(得分:0)
这听起来像是一种合理的方式。我不认为有这样做的标准方法;对于跨平台的版本报告没有任何真正的标准。
答案 1 :(得分:0)
由于我们希望避免每次点击构建时更改“version.cpp”或等效的开销 - 从而花费时间至少进行一次编译和链接 - 我们在构建之后修改二进制文件。
如果你输出到例如ELF或PE格式的可执行文件,您可以使用ELF或PE的一些基本知识和链接器映射来找出要替换的内容,否则您可以扫描二进制文件以查找设置模式(我们使用类似静态const char VERSION []的内容=“[VERSIONBLOCK xxxxxxxxxxxxx]”;)并用相关信息替换部分(例如上面的xxxx部分):
请注意,如果您的二进制文件在此步骤之前已签名或压缩,则此方法无法正常工作,但通常您可以设计构建过程,以便在此步骤之后进行签名/压缩。
我确信这可以扩展到Win32 PE版本元数据以及任何嵌入式版本字符串。