【问题标题】:C compiling progam that uses OpenCV library with Makefile使用带有 Makefile 的 OpenCV 库的 C 编译程序
【发布时间】:2017-02-17 06:41:46
【问题描述】:

您好,我有一个用 C 语言编写的 CLion 项目,它使用 OpenCV 库。 我已经用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&lt;cv.h&gt;#include&lt;opencv/cv.h&gt; 没有关于找不到头文件的错误消息,但是一些链接问题是这样的:

Undefined symbols for architecture x86_64:
  "_cvCreateImage", referenced from:

【问题讨论】:

    标签: c opencv makefile linker-errors


    【解决方案1】:

    好的,我已经解决了我在 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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-22
      • 1970-01-01
      相关资源
      最近更新 更多