4

可能重复:
gcc 预处理器输出

出于某种原因,我需要调查一些由 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抑制了一些警告;当我们将 boost 移出时,gcc 并不能容忍它。

基本上,只需手动忽略或抑制该警告。

4

1 回答 1

3

你的答案可以在这里找到。

基本上它正在重新映射输入的行号/文件名空间,以便编译器知道行的来源。第一个数字是源代码的行号,后面的文件名是它来自的文件。之后的数字是标志。

于 2012-09-27T08:31:39.760 回答