gcc / mingw / mingw-w64中是否有任何选项/ pragma可以向库/可执行文件添加注释(不影响执行的文本字符串)。
类似于Microsoft和Borland #pragma comment (#pragma comment (exestr,"...")
和#pragma comment (user,"...")
链接器是mingw / mingw-w64项目的ld
答案 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 make
或ninja
,则只需为此添加一些规则。
答案 1 :(得分:0)
可以使用versioninfo资源https://msdn.microsoft.com/en-us/library/aa381058.aspx
将文本信息(如版本信息,版权,原始文件名等)添加到exe / dll文件中此信息在文件资源管理器
中可读某些IDE会自动将这样的文件(通常是resource.rc)添加到项目中。