代码之家  ›  专栏  ›  技术社区  ›  builder-7000

GCC选项-在头文件后保存temps编号

  •  0
  • builder-7000  · 技术社区  · 7 年前

    当我在gcc上编译代码时 -save-temps ,结果 filename.i 存储预处理输出的行,例如:

    #44 "/usr/include/stdio.h" 3 4
    struct _IO_FILE;
    

    哪里 44 是电话号码吗 /usr/include/stdio.h 包括代码 struct _IO_FILE; . 我想知道什么是 3 4 在标题名称之后。我查过了 man gcc 但还没有找到解释。

    1 回复  |  直到 7 年前
        1
  •  3
  •   Community Mohan Dere    6 年前

    https://gcc.gnu.org/onlinedocs/cpp/Preprocessor-Output.html#Preprocessor-Output :

    源文件名和行号信息由表单的行传递

    # linenum filename flags
    

    线条标记 at线 行号 . 将永远不包含任何非打印字符;它们将替换为八进制转义序列。

    文件名后面有零个或多个标志,它们是 1 2 , 3 4 . 如果有多个标志,则用空格分隔它们。下面是旗帜的含义:

    • 1 -这表示新文件的开始。

    • -这表示以下文本来自系统头文件,因此应抑制某些警告。

    • -这表明以下文本应被视为以隐式格式包装 extern "C" 阻止。