【问题标题】:g++ compilation using 'include' statement with non-relative paths (C++)g ++编译使用带有非相对路径的'include'语句(C ++)
【发布时间】:2018-12-19 10:08:08
【问题描述】:

我正在尝试使用 g++ 作为编译器通过第三方库编译 c++ 代码。 我的 main.cpp 需要包含头文件 core.hpp 而 core.hpp 需要包含 cvdef.h 而 cvdef.h 需要包含 interface.h。

这三个头文件在include语句中的路径如下:

#include "opencv2/core.hpp"
#include "opencv2/core/cvdef.h"
#include "opencv2/core/hal/interface.h"

请参阅下图中的文件结构。

当我编译我的 main.cpp 时,它会找到 core.hpp。然而,core.hpp 似乎无法找到 cvdef.h,因为它正在“core”文件夹中查找“opencv2”文件夹(低于一个级别)。 如果不更改包含语句中的路径,我将如何处理?

我目前在Windows下使用g++的编译语句是:

g++ main.cpp -o main

【问题讨论】:

    标签: c++ path include g++ libraries


    【解决方案1】:

    OpenCV2 似乎想在标准位置查找头文件。

    您可以使用-I(大写i)选项添加到标准位置列表,指定要添加的路径。

    在你的情况下,你应该能够做到这一点

    g++ main.cpp -o main -Iopencv2/core
    

    【讨论】:

    • 我无法让它工作。我仍然收到同样的错误:opencv2/core.hpp:52:32: 致命错误: opencv2/core/cvdef.h: No such file or directory #include "opencv2/core/cvdef.h"
    • @Christian 如果您在问题中显示错误消息,我会直接在我的答案中输入正确的路径。对于未来的问题,请始终完整完整地包含您收到的错误消息。
    • @Christian 至于你的问题,你需要添加的路径好像是.。所以选项应该是-I.
    猜你喜欢
    • 2013-04-26
    • 2012-09-15
    • 2014-08-19
    • 2011-08-21
    • 1970-01-01
    • 2015-03-13
    • 2010-10-26
    • 1970-01-01
    相关资源
    最近更新 更多