添加文本注释到exe文件mingw

时间:2017-11-19 19:32:12

标签: c++ mingw

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

2 个答案:

答案 0 :(得分:2)

您只需添加一些全局变量,例如

 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");
#pragma

或者您也可能会将Makefile改为generate某个时间戳文件。

一些编译器接受了#ident directive

您可以写下compiler plugin来了解自己{{1}}做类似的事情。我不认为这是值得的。

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

答案 1 :(得分:0)

可以使用versioninfo资源https://msdn.microsoft.com/en-us/library/aa381058.aspx

将文本信息(如版本信息,版权,原始文件名等)添加到exe / dll文件中

此信息在文件资源管理器

中可读

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