嗨,我有一个项目在 CLion
使用OpenCV库用C语言编写。
我已将其配置为 CMake
它编译和运行得很好。但我也有自己的Makefile
在目录中,现在我想添加到此 Makefile 对 OpenCV 库的支持。
以下是我添加到此 Makefile 中的行:
# libraries
# OpenCV
OPENCV_CFLAGS = `pkg-config —-cflags opencv`
OPENCV_LIBS = `pkg-config —-libs opencv`
然后:
$(TARGET): main.c $(LIBRARY) $(TEST_SOURCE_FILES)
$(CC) $(CFLAGS) -o $(TARGET) main.c $(LIBRARY) $(TEST_SOURCE_FILES) $(UNIT_TESTS_LIBRARY) $(OPENCV_LIBS) $(OPENCV_CFLAGS)
当我在做make -f make.txt
时它无法编译,问题是:
fatal error: 'cv.h' file not found
#include <cv.h>
我也尝试使用这个:
# include headers
CFLAGS += -I/usr/local/include/opencv
但是尽管已经找到了 cv.g,但还有另一个错误:
/usr/local/include/opencv/cv.h:63:10: fatal error: 'opencv2/core/core_c.h' file not found
#include "opencv2/core/core_c.h"
不,我将其更改为:
# include headers
CFLAGS += -I/usr/local/include
还有#include<cv.h>
至#include<opencv/cv.h>
不,没有关于找不到头文件的错误消息,但有一些链接问题,如下所示:
Undefined symbols for architecture x86_64:
"_cvCreateImage", referenced from:
最佳答案
好的,我已经解决了我在 Makefile 中创建的问题:
# include headers
# CFLAGS += -I/usr/local/include
# libraries
# OpenCV
OPENCV_LIBS = `pkg-config --cflags --libs opencv`
编译目标时的情况:
$(TARGET): main.c $(LIBRARY) $(TEST_SOURCE_FILES)
$(CC) $(CFLAGS) -o $(TARGET) main.c $(LIBRARY) $(TEST_SOURCE_FILES) $(UNIT_TESTS_LIBRARY) $(OPENCV_LIBS)
关于使用 OpenCV 库和 Makefile 的 C 编译程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39931235/