可能重复:
gcc preprocessor output
出于某种原因,我需要调查g ++预处理器生成的一些.i文件,我看到这样的代码:
#1 /usr/local/include/boost/python.hpp 1 3
#11 /usr/local/include/boost/python.hpp 3
我是一位经验丰富的C ++程序员,我知道.i文件是什么,问题是,我找不到关于如何解释.i文件中的行的详细解释。
有人可以解释上述行的含义(特别是文件后面的数字)或指向我可以找到一些关于此的文档的地方吗?
谢谢,看了看链接后,问题解决了。我想添加一些背景,以防其他人看到同样的问题。 我的项目使用严格的编译器检查,即g ++ -Wall -Werror。所有警告都被视为错误。我们正在使用boost.python,在昨天之前,boost被放在/ usr / local / include中,编译很好。然后我们决定将boost移动到源代码控制中以便于升级,并出现警告(视为错误)。
所以经过调查和CrazyCasta给出的链接细节之后,问题实际上是这样的:当boost在/ usr / local / include中时,它被视为系统头,所以gcc会发出一些警告;当我们提升时,gcc对它来说是不容忍的。
基本上,只需手动忽略或压制该警告。
答案 0 :(得分:3)
您的答案可以找到here。
基本上它重新映射输入的行号/文件名空间,以便编译器知道行的来源。第一个数字是源来源的行号,后面的文件名是它来自的文件。此后的数字是标志。