Visual中的#pragma comment(用户)的目的和#pragma在gcc中的注释

时间:2014-08-29 17:59:20

标签: c++ visual-c++ gcc

Visual c ++和gcc都有这些指令,它们定义为“用于向可执行文件添加注释”。这到底是什么意思?似乎这些注释将嵌入二进制文件中,并且无法在可执行文件中找到它们。它们是否可以以任何方式检索或使用?

1 个答案:

答案 0 :(得分:1)

您好像误读了这个#pragma的描述。微软的文档说:

  

在目标文件中放置一般注释。 commentstring参数包含注释的文本。链接器将忽略此注释记录。

至少根据这个文档,看起来(因为链接器忽略了记录)这样的注释只会将字符串嵌入到目标文件中,而不是可执行文件中。

显而易见的目的是将类似版权字符串的内容嵌入到作为库提供给开发人员使用的库文件中。此类库通常被许可允许开发人员将库中的目标文件链接到可执行文件中,但以自行重新分发目标文件。

在这种情况下,效果是如果开发人员将目标文件链接到可执行文件,则版权声明将消失(如果许可证需要,则由开发人员提供归属),但如果他们重新分发目标文件,原始版权声明将保持不变,或多或少像数字水印。