Я собрал opencv из исходного кода github, следуя этому уроку , все прошло успешно, но при компиляции моей программы-примера для рисования круга
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
int main( )
{
// Create black empty images
Mat image = Mat::zeros( 400, 400, CV_8UC3 );
// Draw a line
line( image, Point( 15, 20 ), Point( 70, 50), Scalar( 110, 220, 0 ), 2, 8 );
imshow("Image",image);
waitKey( 0 );
return(0);
}
Я получаю ошибку.Согласно этому вопросу , мне нужно связать импортированные библиотеки при компиляции моей программы.Но в моей папке MinGW/lib
нет такого файла, как opencv_core.a
или opencv_highgui.a
, вместо этого у меня есть libopencv_core400.dll.a
и libopencv_highgui400.dll.a
так, если я попробую с опциями -lopencv_core
и -lopencv_highgui
D:\Programs\CppProgramming>g++ -lopencv_core -lopencv_highgui -std=c++11 OpenCVTest.cpp
C:/Program Files (x86)/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/5.1.0/../../../../mingw32/bin/ld.exe: cannot find -lopencv_core
C:/Program Files (x86)/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/5.1.0/../../../../mingw32/bin/ld.exe: cannot find -lopencv_highgui
collect2.exe: error: ld returned 1 exit status
или даже с опциями -llibopencv_core400
и - llibopencv_highgui400
D:\Programs\CppProgramming>g++ -llibopencv_core400 -llibopencv_highgui400 -std=c++11 OpenCVTest.cpp
C:\Users\vivek\AppData\Local\Temp\ccnjHIL5.o:OpenCVTest.cpp:(.text+0x80): undefined reference to `cv::Mat::zeros(int, int, int)'
C:\Users\vivek\AppData\Local\Temp\ccnjHIL5.o:OpenCVTest.cpp:(.text+0x157): undefined reference to `cv::circle(cv::_InputOutputArray const&, cv::Point_<int>, int, cv::Scalar_<double> const&, int, int, int)'
C:\Users\vivek\AppData\Local\Temp\ccnjHIL5.o:OpenCVTest.cpp:(.text+0x1c2): undefined reference to `cv::imshow(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cv::_InputArray const&)'
C:\Users\vivek\AppData\Local\Temp\ccnjHIL5.o:OpenCVTest.cpp:(.text+0x1f6): undefined reference to `cv::waitKey(int)'
C:/Program Files (x86)/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/5.1.0/../../../../mingw32/bin/ld.exe: C:\Users\vivek\AppData\Local\Temp\ccnjHIL5.o: bad reloc address 0x12 in section `.text$_ZN2cv11_InputArrayC2Ev[__ZN2cv11_InputArrayC2Ev]'
C:/Program Files (x86)/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/5.1.0/../../../../mingw32/bin/ld.exe: final link failed: Invalid operation
collect2.exe: error: ld returned 1 exit status
Я не уверенгде я иду не так.Где я могу найти эти библиотеки для успешной компоновки и компиляции моей программы?Любая помощь будет оценена.Спасибо ..