繁体   English   中英

使用OpenCV为程序编写Makefile,链接错误

[英]Write makefile for program using OpenCV, link error

我正在尝试编写一个makefile以使用OpenCV编译一些代码,这是我的makefile:

    CC=g++
    CFLAGS=-c -Wall -I/home/me/OpenCV2/opencv-2.4.11/include
    LIBS=-L/home/me/OpenCV2/opencv-2.4.11/build/lib/ -lopencv_features2d -lopencv_imgproc -lopencv_core -lopencv_legacy -lopencv_nonfree -lopencv_ocl -lopencv_contrib

    all: code

    code: codeUtils.o codeLibs.o code.o 
        $(CC) $(LIBS) codeUtils.o codeLibs.o code.o -o code

   code.o:code.cpp
        $(CC) $(CFLAGS) $(LIBS)  code.cpp

    codeUtils.o: codeUtils.cpp
        $(CC) $(CFLAGS) $(LIBS)  codeUtils.cpp

codeLibs.o: codeLibs.cpp
    $(CC) $(CFLAGS) $(LIBS)  codeLibs.cpp

但是,它会产生很多“未定义的引用”错误,makefile中的哪一部分是错误的? 谢谢

错误看起来像这样:

    codeUtils.o: In function `getGradients(cv::Mat const&, cv::Mat&, cv::Mat&)':
    codeUtils.cpp:(.text+0x23): undefined reference to `cv::_OutputArray::_OutputArray(cv::Mat&)'
    codeUtils.cpp:(.text+0x36): undefined reference to `cv::_InputArray::_InputArray(cv::Mat const&)'
    codeUtils.cpp:(.text+0x6f): undefined reference to `cv::Sobel(cv::_InputArray const&, cv::_OutputArray const&, int, int, int, int, double, double, int)'
    codeUtils.cpp:(.text+0x82): undefined reference to `cv::_OutputArray::_OutputArray(cv::Mat&)'
    codeUtils.cpp:(.text+0x95): undefined reference to `cv::_InputArray::_InputArray(cv::Mat const&)'
    codeUtils.cpp:(.text+0xce): undefined reference to `cv::Sobel(cv::_InputArray const&, cv::_OutputArray const&, int, int, int, int, double, double, int)'
   codeUtils.o: In function `getHOGatKey(cv::KeyPoint const&, cv::Mat const&, cv::Mat const&, int, int, cv::Mat&)':
   codeUtils.cpp:(.text+0x139): undefined reference to `cv::Mat::zeros(int, int, int)'

您的库似乎不太正确。 pkg-config可能会在这里帮助您:

    CFLAGS=-c -Wall `pkg-config --cflags opencv`
    LIBS=`pkg-config --libs opencv`

如果由于某种原因未调用opencv,则可以在$ pkg-config --list-all$ locate opencv.pc中找到$ locate opencv.pc来查找文件(我不太确定本地安装会如何处理) 。)如果找到.pc文件并将其包含在pkg-config的搜索路径中,则可以设置PKG_CONFIG_PATH

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM