1

关于我的环境的一点描述:DevCpp 4.9.9.2 with OpenCV 2.3.1 on Windows Vista Home Premium SP1 32-bit

关于我的项目 - 我的项目的 .dev (FirstCVproj.dev) 文件位于 c:...\Desktop\proj\openCV\ 中,我尝试编译的程序“facedetect.cpp”位于 c:\opencv\samples \C

DevCpp中tools->compilers中的OpenCV编译器配置为:

编译器命令

-L"C:\opencv\build\x86\mingw\lib" -llibopencv_core231 -llibopencv_imgproc231 -llibopencv_calib3d231 -llibopencv_video231 -llibopencv_features2d231 -llibopencv_ml231 -llibopencv_highgui231 -llibopencv_objdetect231 -llibopencv_contrib231 -llibopencv_legacy231 -llibopencv_flann231

链接器命令

-llibopencv_core231 -llibopencv_imgproc231 -llibopencv_calib3d231 -llibopencv_video231 -llibopencv_features2d231 -llibopencv_ml231 -llibopencv_highgui231 -llibopencv_objdetect231 -llibopencv_contrib231 -llibopencv_legacy231 -llibopencv_flann231

库目录:opencv\build\x86\mingw\lib

二进制文件目录:opencv\build\x86\mingw\bin

包含目录:opencv 文件夹中的所有包含文件夹(在 \build 和主文件夹下)

所以在我决定在这里发帖之前,我遇到了这里按顺序说明的问题:

未找到 libgcc_s_dw2_1.dll。尝试重新安装应用程序

程序找不到 libgcc_s_dw2-1.dll

未找到 libstdc++-6.dll。尝试重新安装应用程序 libstdc++-6.dll 未找到

因为在链接器命令行选项框中使用 -static 或 -static-libgcc 或 -static-libstdc++ 对我不起作用,所以我将第一个 dll 文件从我在系统中找到它的其他目录复制到我的项目目录(但无处可去)在 C:\DevCpp 的 mingw32 文件夹中)并从网上下载了第二个,我的项目停止给出运行时错误,例如“FirsCVProj 已停止工作。联系应用程序供应商寻求支持”或“.dll 未找到”

但它变得更糟了,因为在运行时,我确实看到了我正在项目中编译的程序的命令输出窗口,但它只出现了几分之一秒!

我重建了整个东西几次,但后来想起爱因斯坦的名言“重复同样的事情并期待不同的输出是精神错乱”我停止了......这就是你们进来的地方。这是我无法帮助的编译日志想知道为什么文件没有链接。

Compiler: OpenCV
Building Makefile: "C:\Users\ronnieaka\Desktop\PROJ\openCV\Makefile.win"
Executing  make clean
rm -f ../../../../../opencv/samples/c/facedetect.o  FirstCVproj.exe
g++.exe -c ../../../../../opencv/samples/c/facedetect.cpp -o ../../../../../opencv/samples/c/facedetect.o -I"lib/gcc/mingw32/3.4.2/include"  -I"include/c++/3.4.2/backward"  -I"include/c++/3.4.2/mingw32"  -I"include/c++/3.4.2"  -I"include"  -I"C:/opencv/include"  -I"C:/opencv/include/opencv"  -I"C:/opencv/include/opencv2"  -I"C:/opencv/build/include"  -I"C:/opencv/build/include/opencv"  -I"C:/opencv/build/include/opencv2"    -L"C:\opencv\build\x86\mingw\lib" -llibopencv_core231 -llibopencv_imgproc231 -llibopencv_calib3d231 -llibopencv_video231 -llibopencv_features2d231 -llibopencv_ml231 -llibopencv_highgui231 -llibopencv_objdetect231 -llibopencv_contrib231 -llibopencv_legacy231 -llibopencv_flann231
g++.exe: -llibopencv_core231: linker input file unused because linking not done
g++.exe: -llibopencv_imgproc231: linker input file unused because linking not done
g++.exe: -llibopencv_calib3d231: linker input file unused because linking not done
g++.exe: -llibopencv_video231: linker input file unused because linking not done
g++.exe: -llibopencv_features2d231: linker input file unused because linking not done
g++.exe: -llibopencv_ml231: linker input file unused because linking not done
g++.exe: -llibopencv_highgui231: linker input file unused because linking not done
g++.exe: -llibopencv_objdetect231: linker input file unused because linking not done
g++.exe: -llibopencv_contrib231: linker input file unused because linking not done
g++.exe: -llibopencv_legacy231: linker input file unused because linking not done
g++.exe: -llibopencv_flann231: linker input file unused because linking not done
g++.exe ../../../../../opencv/samples/c/facedetect.o  -o "FirstCVproj.exe" -L"lib" -L"C:/opencv/build/x86/mingw/lib" -llibopencv_core231 -llibopencv_imgproc231 -llibopencv_calib3d231 -llibopencv_video231 -llibopencv_features2d231 -llibopencv_ml231 -llibopencv_highgui231 -llibopencv_objdetect231 -llibopencv_contrib231 -llibopencv_legacy231 -llibopencv_flann231  
Execution terminated
Compilation successful

编辑:

我还尝试了 opencv\samples\c\mushroom.cpp,我得到了输出窗口,其中打印了程序的详细信息,关于它的作者等,但后来我收到了 windows 消息:“FirstCVproj 已停止工作”

4

1 回答 1

1

可以在命令行中看到您将此路径添加为库路径:

-L"C:\opencv\build\x86\mingw\lib" 

您需要通过确认可以在其中找到所有这些文件来确保这是正确的目录

libopencv_core231 libopencv_imgproc231 libopencv_calib3d231 libopencv_video231
libopencv_features2d231 libopencv_ml231 libopencv_highgui231 libopencv_objdetect231 
libopencv_contrib231 libopencv_legacy231 libopencv_flann231

我没有安装 Dev-C++,也不推荐它。最后一个正式发布的版本可以追溯到 2005 年 2 月 22 日:

Colin Laplace 表示他正忙于处理现实生活中的问题,没有时间继续开发 Dev-C++。

我强烈建议您转移到另一个编译器,如果您考虑使用 Visual Studio Express(免费),您可以按照本教程配置 OpenCV

编辑

您应该添加的库目录是具有.a文件的库目录,它可能与具有 DLL 的库目录不同。请记住,DLL 在应用程序执行时使用,而不是在应用程序处于构建(链接)过程时使用。

编辑

不要将库文件包含-llibopencv_core231-lopencv_core231.

于 2012-01-10T11:35:54.950 回答