【问题标题】:Adding text comment to exe file mingw将文本注释添加到 exe 文件 mingw
【发布时间】:2017-11-19 19:32:12
【问题描述】:

gcc/mingw/mingw-w64 中是否有任何选项/pragma 可以向库/可执行文件添加注释(文本字符串不影响执行)。 Microsoft 和 Borland 的模拟 #pragma comment (#pragma comment (exestr,"...")#pragma comment (user,"...") 链接器是mingw/mingw-w64项目的ld

【问题讨论】:

  • 这也取决于链接器和操作系统
  • 链接器是mingw32-make,操作系统是MS Windows。
  • 这应该进入你的问题。顺便说一句,mingw32-make 不是 linker。它可能是一些build automation 工具
  • @BasileStarynkevitch 好的,链接器是 mingw 的 ld。 mingw 和 mingw-w64 是 gcc 的 windows 端口
  • 我不明白您为什么不考虑为您的需要生成一些 C 或 C++ 代码。

标签: c++ mingw


【解决方案1】:

你可以简单地添加一些全局变量,例如

 const char globname[] = "this comment";

你甚至可以做到volatile

也许您想使用一些预处理器技巧生成globname

您可以配置您的 build automation 工具来编译一些 foo.cc 使用例如g++ -Wall -g -Dsrcbasename=foo -c foo.cc(如何做到这一点是一个不同的问题)然后在一个公共头文件myheader.hh 中定义一些宏,包括在任何地方,比如

#define FILE_ID_HERE(Str,Suf) const char glob_name_##Suf = Str
#define FILE_ID(Str) FILE_ID_HERE(Str,srcbasename)

并开始您的(和每个)foo.cc 之类的东西

#include "myheader.hh"
FILE_ID("this comment");

或者您也可以将您的 Makefile 改进为 generate 一些时间戳文件。

并且一些编译器接受了#ident directive

你可以写你的compiler plugin来了解你自己的#pragma做类似的事情。我认为这不值得。

请记住,可以生成一些 C 或 C++ 代码,但如何做到这一点是您关心的问题,并且更多地取决于您的构建过程而不是您的编译器。考虑为此目的配置您的build automation 工具。如果您使用GNU makeninja,您只需为此添加一些规则。

【讨论】:

    【解决方案2】:

    文本信息(如版本信息、版权、原始文件名等)可以使用versioninfo资源https://msdn.microsoft.com/en-us/library/aa381058.aspx添加到exe/dll文件中

    此信息可在文件资源管理器中读取

    某些 IDE 会自动将这样的文件(通常是 resource.rc)添加到项目中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-23
      • 2014-04-22
      • 1970-01-01
      • 2018-12-09
      • 1970-01-01
      • 2020-09-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多