this tutorial
,一切都很成功,但我编写了一个画圆的示例程序,
#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);
}
我弄错了。根据
this question
,我必须在编译程序时链接导入的库。但是在我的
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