首页 > 解决方案 > g ++编译使用带有非相对路径的'include'语句(C ++)

问题描述

我正在尝试使用 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++pathincludeg++libraries

解决方案


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

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

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

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

推荐阅读