在C ++中包含标头

时间:2013-11-28 22:19:48

标签: c++ opencv include

在C ++中,是否需要将任何所需的头文件复制到主C ++文件的目录中?

实施例。我全局安装了OpenCV,Python绑定运行良好。但是,如果我写:

#include "opencv2/highgui/highgui.hpp"

我收到“未找到”错误。我是否需要将这些从全局安装位置复制到项目目录?我确信必须有一套完善的做法,所以我不想自己在黑暗中瞎逛。

2 个答案:

答案 0 :(得分:4)

这取决于您使用的操作系统和构建工具链,但作为使用linux,gcc和cmake的示例,本文将介绍如何使用opencv进行构建。

http://docs.opencv.org/trunk/doc/tutorials/introduction/linux_gcc_cmake/linux_gcc_cmake.html

正如您在find_package指令中看到的那样,cmake正在搜索opencv包含文件。

显然,您可以直接使用g++ -I指定包含路径,但让cmake为您找到它的优点是,如果您在不同的系统上编译,它将更有可能被找到。如果找不到文件,它也会给你一个错误。

最后,您应该确保拥有“dev”文件,而不仅仅是库。 dev文件将包含要包含的标头。同时,库只有共享对象(*.so)和归档(*.a),可用于静态或运行时链接。

答案 1 :(得分:3)

如果全局安装,则需要通知编译器全局查看,即

#include <opencv2/highgui/highgui.hpp>