机器人车技术开发分享网
undefined reference to 'cvCanny' undefined reference to 'cvCbrt'
  • 首页 > 视频图像处理
  • 作者:小v
  • 2019年11月11日 14:25 星期一
  • 浏览:1390
  • 字号:
  • 评论:0
  • lid@lid-VirtualBox:~/share/lide/appsprogram/face-detction$ make 
    arm-oe-linux-gnueabi-g++  -march=armv7-a -mfloat-abi=softfp -mfpu=neon --sysroot=/home/lid/gcc/sdk8053/sysroots/armv7a-vfp-neon-oe-linux-gnueabi -o face-rec src/objectDetection.o  -O2 -fexpensive-optimizations -frename-registers -fomit-frame-pointer -ftree-vectorize   -finline-functions -finline-limit=64   -Wno-error=maybe-uninitialized   -std=c++11  -O2 -fexpensive-optimizations -frename-registers -fomit-frame-pointer -ftree-vectorize   -finline-functions -finline-limit=64   -Wno-error=maybe-uninitialized   -g -pthread -Wall  -rdynamic -funwind-tables -D__unused="__attribute__((__unused__))" -I./usr/include/opencv -I./usr/inc/opencv/opencv2 -I./usr/include   -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -L./usr/lib/   -lopencv_core -ldl -lm -lz -lopencv_calib3d  -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_highgui  -lopencv_imgcodecs -lopencv_imgproc  -lopencv_ml  -lopencv_objdetect  -lopencv_photo  -lopencv_shape -lopencv_stitching -lopencv_superres  -lopencv_video -lopencv_videostab -lopencv_videoio  -lIlmImf -llibjasper -llibtiff -llibpng -llibjpeg -llibwebp -lzlib -lrt -lpthread -pthread -lm -ldl 
    ./usr/lib//libopencv_imgproc.a(color.cpp.obj):color.cpp:function cv::initLabTabs() [clone .part.0]: error: undefined reference to 'cvCbrt'
    ./usr/lib//libopencv_imgproc.a(color.cpp.obj):color.cpp:function cv::initLabTabs() [clone .part.0]: error: undefined reference to 'cvCbrt'
    ./usr/lib//libopencv_imgproc.a(imgwarp.cpp.obj):imgwarp.cpp:function cv::logPolar(cv::_InputArray const&, cv::_OutputArray const&, cv::Point_<float>, double, int): error: undefined reference to 'cv::cartToPolar(cv::_InputArray const&, cv::_InputArray const&, cv::_OutputArray const&, cv::_OutputArray const&, bool)'
    ./usr/lib//libopencv_imgproc.a(imgwarp.cpp.obj):imgwarp.cpp:function cv::logPolar(cv::_InputArray const&, cv::_OutputArray const&, cv::Point_<float>, double, int): error: undefined reference to 'cv::log(cv::_InputArray const&, cv::_OutputArray const&)'
    ./usr/lib//libopencv_imgproc.a(imgwarp.cpp.obj):imgwarp.cpp:function cv::linearPolar(cv::_InputArray const&, cv::_OutputArray const&, cv::Point_<float>, double, int): error: undefined reference to 'cv::cartToPolar(cv::_InputArray const&, cv::_InputArray const&, cv::_OutputArray const&, cv::_OutputArray const&, bool)'
    ./usr/lib//libopencv_imgproc.a(imgwarp.cpp.obj):imgwarp.cpp:function cvLogPolar: error: undefined reference to 'cvCartToPolar'
    ./usr/lib//libopencv_imgproc.a(imgwarp.cpp.obj):imgwarp.cpp:function cvLogPolar: error: undefined reference to 'cvLog'
    ./usr/lib//libopencv_imgproc.a(imgwarp.cpp.obj):imgwarp.cpp:function cvLinearPolar: error: undefined reference to 'cvCartToPolar'
    ./usr/lib//libopencv_objdetect.a(cascadedetect.cpp.obj):cascadedetect.cpp:function cv::HaarEvaluator::computeChannels(int, cv::_InputArray const&): error: undefined reference to 'cv::integral(cv::_InputArray const&, cv::_OutputArray const&, cv::_OutputArray const&, cv::_OutputArray const&, int, int)'
    ./usr/lib//libopencv_objdetect.a(cascadedetect.cpp.obj):cascadedetect.cpp:function cv::HaarEvaluator::computeChannels(int, cv::_InputArray const&): error: undefined reference to 'cv::integral(cv::_InputArray const&, cv::_OutputArray const&, cv::_OutputArray const&, cv::_OutputArray const&, int, int)'
    ./usr/lib//libopencv_objdetect.a(cascadedetect.cpp.obj):cascadedetect.cpp:function cv::HaarEvaluator::computeChannels(int, cv::_InputArray const&): error: undefined reference to 'cv::integral(cv::_InputArray const&, cv::_OutputArray const&, cv::_OutputArray const&, cv::_OutputArray const&, int, int)'
    ./usr/lib//libopencv_objdetect.a(cascadedetect.cpp.obj):cascadedetect.cpp:function cv::HaarEvaluator::computeChannels(int, cv::_InputArray const&): error: undefined reference to 'cv::integral(cv::_InputArray const&, cv::_OutputArray const&, cv::_OutputArray const&, cv::_OutputArray const&, int, int)'
    ./usr/lib//libopencv_objdetect.a(cascadedetect.cpp.obj):cascadedetect.cpp:function cv::BaseCascadeClassifier::~BaseCascadeClassifier(): error: undefined reference to 'cv::Algorithm::~Algorithm()'
    ./usr/lib//libopencv_objdetect.a(cascadedetect.cpp.obj):cascadedetect.cpp:function cv::CascadeClassifierImpl::CascadeClassifierImpl(): error: undefined reference to 'cv::Algorithm::Algorithm()'
    ./usr/lib//libopencv_objdetect.a(cascadedetect.cpp.obj):cascadedetect.cpp:vtable for cv::CascadeClassifierImpl: error: undefined reference to 'cv::Algorithm::save(cv::String const&) const'
    ./usr/lib//libopencv_objdetect.a(cascadedetect.cpp.obj):cascadedetect.cpp:vtable for cv::CascadeClassifierImpl: error: undefined reference to 'cv::Algorithm::getDefaultName() const'
    ./usr/lib//libopencv_objdetect.a(cascadedetect.cpp.obj):cascadedetect.cpp:typeinfo for cv::BaseCascadeClassifier: error: undefined reference to 'typeinfo for cv::Algorithm'
    ./usr/lib//libopencv_objdetect.a(cascadedetect.cpp.obj):cascadedetect.cpp:vtable for cv::BaseCascadeClassifier: error: undefined reference to 'cv::Algorithm::save(cv::String const&) const'
    ./usr/lib//libopencv_objdetect.a(cascadedetect.cpp.obj):cascadedetect.cpp:vtable for cv::BaseCascadeClassifier: error: undefined reference to 'cv::Algorithm::getDefaultName() const'
    ./usr/lib//libopencv_objdetect.a(haar.cpp.obj):haar.cpp:function cvHaarDetectObjectsForROC(void const*, CvHaarClassifierCascade*, CvMemStorage*, std::vector<int, std::allocator<int> >&, std::vector<double, std::allocator<double> >&, double, int, int, CvSize, CvSize, bool): error: undefined reference to 'cvIntegral'
    ./usr/lib//libopencv_objdetect.a(haar.cpp.obj):haar.cpp:function cvHaarDetectObjectsForROC(void const*, CvHaarClassifierCascade*, CvMemStorage*, std::vector<int, std::allocator<int> >&, std::vector<double, std::allocator<double> >&, double, int, int, CvSize, CvSize, bool): error: undefined reference to 'cvIntegral'
    ./usr/lib//libopencv_objdetect.a(haar.cpp.obj):haar.cpp:function cvHaarDetectObjectsForROC(void const*, CvHaarClassifierCascade*, CvMemStorage*, std::vector<int, std::allocator<int> >&, std::vector<double, std::allocator<double> >&, double, int, int, CvSize, CvSize, bool): error: undefined reference to 'cvCanny'
    ./usr/lib//libopencv_objdetect.a(haar.cpp.obj):haar.cpp:function cvHaarDetectObjectsForROC(void const*, CvHaarClassifierCascade*, CvMemStorage*, std::vector<int, std::allocator<int> >&, std::vector<double, std::allocator<double> >&, double, int, int, CvSize, CvSize, bool): error: undefined reference to 'cvIntegral'
    collect2: error: ld returned 1 exit status
    make: *** [face-rec] Error 1


    opencv3.2交叉编译遇到上述无法找到问题,本项目中OpenCV中使用的是生成的静态库。

    编译方法,

    是在cmake的时候

    cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_SHARED_LIBS=OFF -D BUILD_SHARED_LIBS=NO -D BUILD_PNG=ON -D BUILD_JASPER=ON -D BUILD_JPEG=ON -D BUILD_TIFF=ON -D BUILD_ZLIB=ON -D WITH_JPEG=ON -D WITH_PNG=ON -D WITH_JASPER=ON -D WITH_TIFF=ON ..

    将build-shared-libs 关掉,在cmake-gui中将勾去掉。

    生成的目录其中lib里边都是opencv的静态库,share里边有第三方的libjpeg的库

    lid@lid-VirtualBox:~/build-opencv3/insatll$ ls
    bin  include   lib  LICENSE  share
    lid@lid-VirtualBox:~/build-opencv3/insatll$ ls lib/
    a                    libopencv_core.a        libopencv_flann.a    libopencv_imgcodecs.a  libopencv_ml.a         libopencv_photo.a  libopencv_stitching.a  libopencv_video.a    libopencv_videostab.a
    libopencv_calib3d.a  libopencv_features2d.a  libopencv_highgui.a  libopencv_imgproc.a    libopencv_objdetect.a  libopencv_shape.a  libopencv_superres.a   libopencv_videoio.a  so
    lid@lid-VirtualBox:~/build-opencv3/insatll$ ls share/OpenCV/3rdparty/lib/
    libIlmImf.a  liblibjasper.a  liblibjpeg.a  liblibpng.a  liblibtiff.a  liblibwebp.a  libzlib.a
    lid@lid-VirtualBox:~/build-opencv3/insatll$ 

    我们将这些库拷贝到Makefile下的编译环境下。

    其中Makefile的顺序一定要注意。

    objdetect depends upon imgproc

    这样写是不会出问题的。

    LDFLAGS +=  -lopencv_calib3d   -lopencv_features2d   -lopencv_imgcodecs   -lopencv_ml  -lopencv_objdetect  -lopencv_photo  
    LDFLAGS +=  -lopencv_shape -lopencv_stitching -lopencv_superres  -lopencv_video -lopencv_videostab -lopencv_videoio   -lopencv_highgui
    LDFLAGS += -lIlmImf -llibjasper -llibtiff -llibpng -llibjpeg -llibwebp -lzlib -lopencv_imgproc -lopencv_flann -lopencv_core


      您阅读这篇文章共花了:  
     本文无需标签!
    二维码加载中...
    本文作者:小v      文章标题: undefined reference to 'cvCanny' undefined reference to 'cvCbrt'
    本文地址:http://blog.cvosrobot.com/?post=465
    版权声明:若无注明,本文皆为“机器人车技术开发分享网”原创,转载请保留文章出处。

    返回顶部| 首页| 手气不错| 捐赠支持| 自定义链接| 自定义链接| 自定义链接| 手机版本|后花园

    Copyright © 2014-2017 机器人车技术开发分享网   京ICP备14059411 Copyright 2014-2019 小v工作室 版权所有 All Rights Reserved

    sitemap