gcc相当于#pragma comment

时间:2014-08-29 16:26:27

标签: c++ gcc pragma

我试图编写一个宏,用gcc编译器为可执行文件添加注释。这不是用于链接目的,我只是想添加文本注释。为此目的,gcc中是否存在#pragma注释等效项?

3 个答案:

答案 0 :(得分:7)

我不确定对于可执行文件添加注释"是什么意思。谁或将要消费,展示甚至注意到这些评论?不过,如果你只想确保某些字符串嵌入程序中的某个地方,那么只需在文件范围内将其声明为普通(C)字符串。

static const char my_comment[] = "This comment should appear in the compiled executable";

答案 1 :(得分:2)

如果您不希望将.data部分(static const char[]将要去的地方)与评论混为一谈,或者相反,希望从{{1}轻松找到评论你可以在那里添加一些内联汇编的注释:

.comment

Gcc还has __asm__(".section .comment\n\t" ".string \"Hello World\"\n\t" ".section .text"); 指令将文本复制到适当的部分(如果可用)。在ELF的情况下,它将是.comment部分。即使该指令不是标准的,该解决方案也可能比前者更便携。

#ident

答案 2 :(得分:0)

#ident可能有用。但是有两个警告:

  1. 它可能不适用于所有目标。
  2. 这既不是C语言标准也不是GNU编码标准
  

“#ident”指令采用一个参数,即字符串常量。一些   系统,则将该字符串常量复制到   目标文件。在其他系统上,该指令将被忽略。 “ #sccs”   指令是“ #ident”的同义词。

     

这些指令不是C标准的一部分,但它们不是   还是官方的GNU扩展。

https://gcc.gnu.org/onlinedocs/cpp/Other-Directives.html