【问题标题】:G++ -I option for compiling programG++ -I 编译程序的选项
【发布时间】:2010-12-20 16:21:30
【问题描述】:

这里有个小问题,我这样的Linux程序新手解决不了。

现在我有一个main.cpp程序需要编译,有一个

#include "Down.h"

在文件的前面。

其实这个头文件存在于另一个目录中,位于 ../../../include 目录。另外,Down.h 需要的其他一些头文件也在这个../../../include 目录下。

问题来了,我用命令编译main.cpp

g++ -I /../../../include main.cpp

但是,它提供了很多错误信息,这意味着这样做是不正确的。

我是否也应该将包含声明更改为这个?

#include "../../../include/DownConvert.h"

你能给我一些建议吗?谢谢。

编辑:

使用g++ -I ../../../include main.cpp后出现如下错误:

$ g++ -I ../../../include main.cpp 

In file included from ../../../include/DownConvert.h:98,
from main.cpp:92: ../../../include/ResizeParameters.h:4:22: error:
TypeDefs.h: No such file or directory 

In file included from /usr/include/c++/4.4/bits/stl_algo.h:61, 
from /usr/include/c++/4.4/algorithm:62, 
from ../../../include/H2 

【问题讨论】:

  • 您在示例代码中同时使用了“Down.h”和“DownConvert.h”,这是正确的吗?
  • 使用g++ -I../../../include main.cpp后,出现如下错误,请您看看,谢谢。 jl@jl-linux:~/videocoding/jsvm2/JSVM/H264Extension/src/tools/PSNR$ g++ -I ../../../include main.cpp 在来自../../..的文件中/include/DownConvert.h:98, from main.cpp:92: ../../../include/ResizeParameters.h:4:22: error: TypeDefs.h: No such file or directory 在包含的文件中/usr/include/c++/4.4/bits/stl_algo.h:61,来自/usr/include/c++/4.4/algorithm:62,来自../../../include/H2

标签: g++ compilation


【解决方案1】:
g++ -I /../../../include main.cpp

看到-I 后面的斜杠了吗?这是一条绝对路径。
将其更改为相对路径(如下所示),它会正常工作。

g++ -I ../../../include main.cpp

【讨论】:

    【解决方案2】:

    g++ -I ../../../include main.cpp

    应该可以工作

    【讨论】:

      【解决方案3】:

      尝试使用 -v 选项:

      g++ -v -I ../../../include main.cpp
      

      并检查要搜索包含文件的目录列表是否包含您的文件夹,并且没有抱怨该文件夹不存在。如果有这种抱怨,请纠正你在 -I 之后给出的路径

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-07
        • 2012-09-05
        • 1970-01-01
        • 1970-01-01
        • 2014-07-29
        相关资源
        最近更新 更多