Linux下编写C++代码引用opencv头文件,编译报错 undefined reference to `cv::imread的解决办法
2020-04-03 07:39
3627 查看
Linux下编写C++代码引用opencv头文件,编译报错 undefined reference to `cv::imread(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, int)的两种解决办法
1. 首先确定已安装opencv,可在终端输入命令查看:
$ opencv_version 3.3.1-dev
或输入以下命令查看opencv库的路径:
$ pkg-config --cflags --libs opencv -I/usr/include/opencv /usr/lib/x86_64-linux-gnu/libopencv_calib3d.so -lopencv_calib3d /usr/lib/x86_64-linux-gnu/libopencv_contrib.so -lopencv_contrib /usr/lib/x86_64-linux-gnu/libopencv_core.so -lopencv_core /usr/lib/x86_64-linux-gnu/libopencv_features2d.so -lopencv_features2d /usr/lib/x86_64-linux-gnu/libopencv_flann.so -lopencv_flann /usr/lib/x86_64-linux-gnu/libopencv_gpu.so -lopencv_gpu /usr/lib/x86_64-linux-gnu/libopencv_highgui.so -lopencv_highgui /usr/lib/x86_64-linux-gnu/libopencv_imgproc.so -lopencv_imgproc /usr/lib/x86_64-linux-gnu/libopencv_legacy.so -lopencv_legacy /usr/lib/x86_64-linux-gnu/libopencv_ml.so -lopencv_ml /usr/lib/x86_64-linux-gnu/libopencv_objdetect.so -lopencv_objdetect /usr/lib/x86_64-linux-gnu/libopencv_ocl.so -lopencv_ocl /usr/lib/x86_64-linux-gnu/libopencv_photo.so -lopencv_photo /usr/lib/x86_64-linux-gnu/libopencv_stitching.so -lopencv_stitching /usr/lib/x86_64-linux-gnu/libopencv_superres.so -lopencv_superres /usr/lib/x86_64-linux-gnu/libopencv_ts.so -lopencv_ts /usr/lib/x86_64-linux-gnu/libopencv_video.so -lopencv_video /usr/lib/x86_64-linux-gnu/libopencv_videostab.so -lopencv_videostab
如果并没有看到opencv的相关信息,可去opencv官网安装,或参照一位名为Ding_0110M的博客。
2. 用GNU命令编译
命令如下:
// 编译生成可执行文件executableFileName $ g++ source.cpp -o executableFileName $(pkg-config --cflags --libs opencv) // 运行可以执行文件 $ ./executableFileName
这里提醒一点:代码中包含opencv头文件时注意格式:#include<opencv2/opencv.hpp>,不要将 / 误写为 \ 。
3. 使用cmke编译
- 在项目中新建CMakeLists.txt文件;
- 将以下内容复制粘贴到CMakeLists.txt文件中:
cmake_minimum_required(VERSION 2.2) project(project) set(CMAKE_CXX_STANDARD 11) find_package( OpenCV REQUIRED ) include_directories(${OpenCV_INCLUDE_DIRS}) add_executable(executableFileName source.cpp) target_link_libraries( executableFileName ${OpenCV_LIBS} )
- 切换到当前工程所在目录下进行编译:
$ cmake . $ make $ ./executableFileName
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- Linux下eclipse编译C/C++程序遇到 undefined reference to `pthread_create'的异常解决办法
- Opencv undefined reference to `cv::imread() Ubuntu编译
- linux下生产者与消费者问题代码,以及编译c代码时error:undefined reference to sem_wait 解决方法之一
- Linux 编译报错 -- undefined reference to 问题解决方法 (具体'pthread_create'和opencv看文章最后两条)
- 解决编译OpenCV项目时出现的undefined reference to cv::xxxx错误
- linux下编译C++文件(undefined reference to.....解决办法)
- 编译linux 内核时:decompress.c:(.text+0x25c4): undefined reference to `error'的解决办法
- Linux c++ error: undefined reference to 'dlopen' 解决办法
- Linux下基于opencv程序编译时,出现undefined reference to `cv::SIFT::SIFT(int, int, double, double, double)
- C++/nvcc/cuda 编译文件 出现 undefined reference to `cv::String::deallocate()'的解决方法
- GCC编译uboot出现(.ARM.exidx+0x0): undefined reference to `__aeabi_unwind_cpp_pr0'错误的解决办法
- C++:undefined reference to vtable 原因与解决办法 [转]
- FreeBSD下编译Fontconfig时提示src/.libs/libfontconfig.so: undefined reference to `xmlCreatePushParserCtxt' 的解决办法
- 解决编译opencv3.0时出现的问题undefined reference to `parallel_pthreads_set_threads_num(int)'
- gcc 引用math.h头文件,编译出现undefined reference to `pow‘等错
- linux 下安装opencv3.0在编译时出现的问题undefined reference to `parallel_pthreads_set_threads_num(int)'
- Opencv3.0: undefined reference to cv::imread(cv::String const&, int)
- 在linux上编译cppunit1.12.1出现'undefined reference to `dlclose''的解决方法
- Linux下undefined reference to ‘pthread_create’问题解决接触了Linux系统编程中的线程编程模块,可gcc sample.c(习惯把书上的sample代码写
- Caffe 工程的一些编译错误以及解决方案(undefined reference to cv::imread)