【发布时间】:2020-07-19 04:59:04
【问题描述】:
我想编译这个 OpenCV 的例子:https://docs.opencv.org/ref/master/d3/d50/group__imgproc__colormap.html
当我想编译时:g++ myfile.cxx -o myfile 我得到这个错误:
fatal error opencv2/core.hpp not such file or directory
所以我打开 .bashrc 并添加:export PATH=${PATH}:/usr/local/include/opencv4,当我编译时,我现在这样做:g++ myfile.cxx -o myfile -I/usr/include/opencv4
现在我收到很多关于未定义引用的错误:
/usr/bin/ld : /tmp/ccISlbHF.o : dans la fonction « main » :
tryopencv.cxx:(.text+0xb1) : référence indéfinie vers « cv::imread(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int) »
/usr/bin/ld : tryopencv.cxx:(.text+0x195) : référence indéfinie vers « cv::applyColorMap(cv::_InputArray const&, cv::_OutputArray const&, int) »
/usr/bin/ld : tryopencv.cxx:(.text+0x20e) : référence indéfinie vers « cv::imshow(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cv::_InputArray const&) »
/usr/bin/ld : tryopencv.cxx:(.text+0x245) : référence indéfinie vers « cv::waitKey(int) »
/usr/bin/ld : /tmp/ccISlbHF.o : dans la fonction « cv::Mat::~Mat() » :
tryopencv.cxx:(.text._ZN2cv3MatD2Ev[_ZN2cv3MatD5Ev]+0x3d) : référence indéfinie vers « cv::fastFree(void*) »
/usr/bin/ld : /tmp/ccISlbHF.o : dans la fonction « cv::Mat::release() » :
tryopencv.cxx:(.text._ZN2cv3Mat7releaseEv[_ZN2cv3Mat7releaseEv]+0x4f) : référence indéfinie vers « cv::Mat::deallocate() »
collect2: error: ld returned 1 exit status
我在很多论坛上搜索,很多人谈论这个:pkg-config opencv --cflags --libs
我需要输入这个命令 opencv4 而不是 opencv 因为它不起作用并且使用 opencv4 我得到了这个:
-I/usr/include/opencv4/opencv -I/usr/include/opencv4 -lopencv_stitching -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dnn_superres -lopencv_dpm -lopencv_highgui -lopencv_face -lopencv_freetype -lopencv_fuzzy -lopencv_hdf -lopencv_hfs -lopencv_img_hash -lopencv_line_descriptor -lopencv_quality -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_shape -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_superres -lopencv_optflow -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_text -lopencv_dnn -lopencv_plot -lopencv_ml -lopencv_videostab -lopencv_videoio -lopencv_viz -lopencv_ximgproc -lopencv_video -lopencv_xobjdetect -lopencv_objdetect -lopencv_calib3d -lopencv_imgcodecs -lopencv_features2d -lopencv_flann -lopencv_xphoto -lopencv_photo -lopencv_imgproc -lopencv_core
我有点迷茫:如何解决使用 OpenCV 编译和测试的问题?
【问题讨论】:
-
pkg-config 命令的输出是您在编译程序时应该使用的选项。 IE。
g++ myfile.cxx -o myfile $(pkg-config opencv4 --cflags --libs) -
这能回答你的问题吗? opencv not working for c++ on ubuntu 20.04
-
非常感谢您的回答!我没有将 $ 和 () 放在命令之间,这就是为什么它不起作用但现在它起作用了,非常感谢你们!