【问题标题】:How to interpret g++ generated .i file [duplicate]如何解释g ++生成的.i文件[重复]
【发布时间】:2012-09-27 08:28:10
【问题描述】:

可能重复:
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抑制了一些警告;当我们将 boost 移出时,gcc 对它的容忍度并不高。

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

【问题讨论】:

    标签: c++ gcc c-preprocessor


    【解决方案1】:

    你的答案可以在here找到。

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

    【讨论】:

    • 非常感谢,这解决了我的问题:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-18
    • 2020-10-20
    • 1970-01-01
    • 1970-01-01
    • 2012-01-12
    • 1970-01-01
    • 2020-07-01
    相关资源
    最近更新 更多