解决Linux下 C++ opencv 库文件的链接问题


errors:

/home/tonyyan/Documents/main.cpp:108: undefined reference to `cv::VideoCapture::read(cv::_OutputArray const&)'
/home/tonyyan/Documents/main.cpp:130: undefined reference to `cv::putText(cv::_InputOutputArray const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cv::Point_<int>, int, double, cv::Scalar_<double>, int, int, bool)'
/home/tonyyan/Documents/main.cpp:131: undefined reference to `cv::putText(cv::_InputOutputArray const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cv::Point_<int>, int, double, cv::Scalar_<double>, int, int, bool)'
/home/tonyyan/Documents/main.cpp:134: undefined reference to `cv::imshow(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cv::_InputArray const&)'
/home/tonyyan/Documents/main.cpp:135: undefined reference to `cv::waitKey(int)'
/home/tonyyan/Documents/main.cpp:69: undefined reference to `cv::VideoCapture::~VideoCapture()'
/home/tonyyan/Documents/main.cpp:68: undefined reference to `cv::Mat::~Mat()'
/home/tonyyan/Documents/main.cpp:36: undefined reference to `cv::Mat::~Mat()'
/home/tonyyan/Documents/main.cpp:69: undefined reference to `cv::VideoCapture::~VideoCapture()'
/home/tonyyan/Documents/main.cpp:68: undefined reference to `cv::Mat::~Mat()'
/home/tonyyan/Documents/main.cpp:36: undefined reference to `cv::Mat::~Mat()'

solution:

add the following arguments to g++:

-lopencv_core -lopencv_imgproc -lopencv_highgui

in tasks.json of vscode:

                "-lopencv_core",
                "-lopencv_imgproc",
                "-lopencv_highgui",

  

reference: 

https://stackoverflow.com/questions/24337932/cannot-get-opencv-to-compile-because-of-undefined-references

 

补充 error:

9: undefined reference to `cv::VideoCapture::VideoCapture()'

solution:

"-lopencv_videoio",

 

总之,缺什么就链接什么库文件。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM