尝试在Dev C ++上编译OpenCV项目时出错

时间:2014-07-22 07:09:30

标签: c++ opencv image-processing dev-c++

我收到此错误:

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

我在开发选项中做了什么:

  1. 我已将此命令行添加到编译器:

    -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

  2. 此通道到链接器选项:

    -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

  3. 在直接上我添加了:

    二进制文件: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 ++:与上面相同

  4. 我已将opencv路径D:\devc\opencv添加到PATH变量

  5. 我的开发C ++版本是:5.7.0,OpenCV:2.4.8

  6. 任何人都知道如何解决这个问题?

    修改

    使用CodeBlock的相同问题

3 个答案:

答案 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的文件夹中。