我收到此错误:
D:\Users\JF150696\AppData\Local\Temp\ccrDYwyp.o Source2.cpp:(.text+0xdf): undefined reference to `cv::imread(std::string const&, int)'
D:\Users\JF150696\AppData\Local\Temp\ccrDYwyp.o Source2.cpp:(.text+0xdec): undefined reference to `cv::_InputArray::_InputArray(cv::Mat const&)'
D:\Users\JF150696\AppData\Local\Temp\ccrDYwyp.o Source2.cpp:(.text+0xe41): undefined reference to `cv::imwrite(std::string const&, cv::_InputArray const&, std::vector<int, std::allocator<int> > const&)'
d:\devc\dev-cpp\mingw64\x86_64-w64-mingw32\bin\ld.exe D:\Users\JF150696\AppData\Local\Temp\ccrDYwyp.o: bad reloc address 0x20 in section `.text$_ZSt4sqrtf[__ZSt4sqrtf]'
D:\devc\opencv\projekty\test 3 opencv\test 3 opencv\collect2.exe [Error] ld returned 1 exit status
我在开发选项中做了什么:
我已将此命令行添加到编译器:
-L “C:\的OpenCV \建立\ 86 \ VC11 \ lib中” -lopencv_highgui248 -lopencv_core248 -lopencv_imgproc248 -lopencv_calib3d248 -lopencv_video248 -lopencv_features2d248 -lopencv_ml248 -lopencv_highgui248 -lopencv_objdetect248 -lopencv_contrib248 -lopencv_legacy248 -lopencv_flann248
立>此通道到链接器选项:
-static-libgcc中-lopencv_highgui248 -lopencv_core248 -lopencv_imgproc248 -lopencv_calib3d248 -lopencv_video248 -lopencv_features2d248 -lopencv_ml248 -lopencv_highgui248 -lopencv_objdetect248 -lopencv_contrib248 -lopencv_legacy248 -lopencv_flann248
在直接上我添加了:
二进制文件:D:\devc\opencv\build\x86\vc11\bin
libs:D:\devc\opencv\build\x86\vc11\lib
标题C:D:\devc\opencv\build\include\opencv2
D:\devc\opencv\build\include\opencv
D:\devc\opencv\build\include
标题C ++:与上面相同
我已将opencv路径D:\devc\opencv
添加到PATH变量
我的开发C ++版本是:5.7.0,OpenCV:2.4.8
任何人都知道如何解决这个问题?
修改
使用CodeBlock的相同问题
答案 0 :(得分:0)
您是否正确地将Source2链接到collect2?在与主程序链接之前,应将Source2.cpp编译成目标文件。
答案 1 :(得分:0)
如果我没有弄错,问题与链接库无关,这是因为 imread和imwrite不应该像你所说的那样
imread(string,mat)
但是你打电话了
imread(string,int)
所以它给出了错误。与其他行相同。
答案 2 :(得分:0)
使用here中给出的CMake和CodeBlocks构建库,直到代码块设置的第3步。
然后在博客中给出Devc ++ C和C ++ Includes选项卡
C:\OpenCV\my_build\install\include
C:\OpenCV\my_build\install\include\opencv
C:\OpenCV\my_build\install\include\opencv2
因为你已经包含了opencv和opencv2,所以在头文件中删除/opencv2/..and / opencv ..
并将以下行添加到Devc ++中的库中 C:\的OpenCV \ my_build \安装\ 64 \ mingw的\ lib中
还将C:\ OpenCV \ my_build \ install \ x64 \ mingw \ lib中的所有.dll.a文件添加到项目选项中。
从opencv \ my_build \ install \ x64 \ mingw \ bin复制所有dll文件并粘贴到将构建程序EXE的文件夹中。