c++ - 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
解决方案
似乎 OpenCV2 想要在标准位置查找头文件。
您可以使用-I
(大写 i)选项添加到标准位置列表,指定要添加的路径。
在你的情况下,你应该能够做到这一点
g++ main.cpp -o main -Iopencv2/core
推荐阅读
- haskell - 如何防止堆栈下载文件
- python - 计算线穿过两点的角度 - 如何正确缩放?
- powershell - 如何通过Powershell从具有属性(我自己自定义创建的列)的共享点文件夹中获取所有文件?
- apache-spark - 从一个数据帧生成多个输出,只读取一次数据
- android - Firebase 和本地化
- oracle - 对函数调用(堆栈帧)中的类型强制感到困惑
- sql - 加入倾斜关系时,有没有办法改进 PostgreSQL 估计?
- c - 在对 fgets 的不相关函数调用后清除字符数组?
- python-3.x - Tkinter 应用程序崩溃,同时单击不同的按钮
- memory - 汇编 - 为什么静态分析代码中的值会发生变化?