使用具有非相对路径的 'include' 语句的 g++ 编译 (C++)
g++ compilation using 'include' statement with non-relative paths (C++)
我正在尝试使用 g++ 作为编译器使用第三方库编译 c++ 代码。
我的 main.cpp 需要包含头文件 core.hpp 而 core.hpp 需要包含 cvdef.h 而 cvdef.h 需要包含 interface.h.
include语句中这三个header的路径如下:
#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' 文件夹(在下一级)。
在不更改 include 语句中的路径的情况下,我将如何处理?
我目前在Windows下使用g++的编译语句是:
g++ main.cpp -o main
OpenCV2 似乎想要在标准位置查找头文件。
您可以使用 -I
(大写 i)选项添加到标准位置列表,指定要添加的路径。
在你的情况下,你应该可以用
g++ main.cpp -o main -Iopencv2/core
我正在尝试使用 g++ 作为编译器使用第三方库编译 c++ 代码。 我的 main.cpp 需要包含头文件 core.hpp 而 core.hpp 需要包含 cvdef.h 而 cvdef.h 需要包含 interface.h.
include语句中这三个header的路径如下:
#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' 文件夹(在下一级)。 在不更改 include 语句中的路径的情况下,我将如何处理?
我目前在Windows下使用g++的编译语句是:
g++ main.cpp -o main
OpenCV2 似乎想要在标准位置查找头文件。
您可以使用 -I
(大写 i)选项添加到标准位置列表,指定要添加的路径。
在你的情况下,你应该可以用
g++ main.cpp -o main -Iopencv2/core