【发布时间】:2013-10-23 15:10:27
【问题描述】:
我有一个项目,它使用 opencv 库。今天我已经将我的 Mac OS X Lion 升级到了 Mavericks,现在我想知道为什么它因为以下错误而不再编译:
c++ -O2 -g -Wall -fmessage-length=0 -c -o Hello.o Hello.cpp
Hello.cpp:2:10: fatal error: 'opencv/cv.h' file not found
#include "opencv/cv.h"
^
1 error generated.
make: *** [Hello.o] Error 1
Hello.cpp的代码如下:
#include <iostream>
#include "opencv/cv.h"
using namespace std;
int main(){
return 0;
}
这是我的生成文件:
CXXFLAGS = -O2 -g -Wall -fmessage-length=0
OBJS = Hello.o
LIBS = -lopencv_core -lopencv_imgproc -lopencv_calib3d -lopencv_video -lopencv_features2d -lopencv_ml -lopencv_highgui -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_gpu
INCPATH = -I/usr/local/Cellar/opencv/2.4.6.1/include
LIBPATH = -L/usr/local/Cellar/opencv/2.4.6.1/lib
TARGET = Hello
$(TARGET): $(OBJS)
g++ $(INCPATH) $(LIBPATH) -o $(TARGET) $(OBJS) $(LIBS)
all: $(TARGET)
clean:
rm -f $(OBJS) $(TARGET)
我不得不说,我可以通过键入以下内容使用终端编译我的项目:
g++ `pkg-config --cflags opencv` Hello.cpp -o Hello
可以肯定的是,这就是我在终端上运行 pkg-config --cflags opencv 得到的结果:
-I/usr/local/Cellar/opencv/2.4.6.1/include/opencv
【问题讨论】:
-
不确定是否重要,但您在此处有一个不需要的尾随
/:INCPATH = -I/usr/local/Cellar/opencv/2.4.6.1/include/- 这应该是INCPATH = -I/usr/local/Cellar/opencv/2.4.6.1/include。 -
您还可以在输入
make后粘贴您在终端中获得的内容的副本吗? -
@PaulR,感谢您的评论。不,不是的。我已经在问题中修改了
-
好的 - 让我们看看成绩单...
-
你可以在问题中看到,我刚刚添加了它