如何将目录添加到我的包含路径以避免在C ++中编写完整的目录路径?

时间:2016-01-31 19:54:20

标签: c++

我是编程新手,想要使用opencv2。我有一个代码包,想要运行它。它是用C ++编写的,我想在opencv2中包含几个文件,代码是:

#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"

我的问题是为什么#include没有给出像/usr/local/include/opencv2/...这样的整个目录?

此代码无法在我的计算机上运行,​​因为我没有将opencv2添加到我的包含路径中。

我该怎么办?

2 个答案:

答案 0 :(得分:2)

如果您的编译器没有自动查找/usr/local/include下的标题,那么您需要告诉它这样做:

g++ … -I/usr/local/include … source.cpp

您没有将完整路径名放入源中的原因是它使其无法移植。您已在/usr/local中安装了OpenCV2,我在/opt/OpenCV2中安装了它。如果代码说:

,则必须严重破解源代码
#include "/usr/local/include/opencv2/core/core.hpp"

就这样,人们可以在任何位置找到OpenCV2库和支持头文件,只需在命令行上(或在makefile中指定该位置,或者让自动配置工具为您完成工作)

答案 1 :(得分:0)

将OpenCV2添加到包含路径中。

如果你愿意,你可以在你的#include指令中写一个绝对路径,但它会让你的代码完全不可移植,因为它非常不受欢迎。