OS X上不能包含opencv3

时间:2017-04-14 02:47:03

标签: c++ c opencv gcc include

我在OS X El cap上用C ++编写了一个非常小的项目,从Homebrew通过brew install opencv3安装了opencv3,我尝试了官方示例所做的并将此行包含在我的文件之上

#include <opencv2/opencv.hpp>

它返回错误说

fatal error: 'opencv2/opencv.hpp' file not found
#include <opencv2/opencv.hpp>

尝试用双引号代替&lt;&gt;,也没有用,尝试了其他模块,如

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

有或没有模块路径(highgui /)或&lt;&gt;,它总是找不到文件错误

这是我的Makefile的一部分:

CC=clang++
CFLAGS= -Wall -g -std=c++0x
LFLAGS=

CFILES=blahblah.cpp
HFILES=blahblah.hpp
OFILES=blahblah.o

all:    main

%.o:    %.cpp $(HFILES)                                                                                   
        $(CC) -c $(CFLAGS) $< -o $@ $(LFLAGS)

main:   $(OFILES) $(HFILES)
    $(CC) $(CFLAGS) $(OFILES) -o main $(LFLAGS)

我在makefile的搜索路径中包含了include目录,并收到此错误:

clang++ -Wall -g -std=c++0x main.o datatools.o extract.o -o main -I/usr/local/Cellar/opencv3/3.2.0/include -I/usr/local/include
Undefined symbols for architecture x86_64:
  "cv::String::deallocate()", referenced from:
      cv::String::~String() in main.o
      cv::String::operator=(cv::String const&) in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [main] Error 1

顺便说一句,opencv2工作正常,我不需要做任何事情,我应该如何让opencv3库工作?

1 个答案:

答案 0 :(得分:0)

您需要在项目的构建设置中将标题目录(/usr/local/Cellar/your_opencv_header_dir)指定到Header search paths

您可能还需要对库执行相同操作或将它们包含在项目中。