DevCpp上OpenCV 2.3.1中的链接器干扰

DevCpp上OpenCV 2.3.1中的链接器干扰,opencv,linker,runtime-error,dev-c++,Opencv,Linker,Runtime Error,Dev C++,关于我的环境的一点描述: 在Windows Vista Home Premium SP1 32位上使用OpenCV 2.3.1的DevCpp 4.9.9.2 关于我的项目-我的项目的.dev(FirstCVproj.dev)文件位于c:…\Desktop\proj\openCV\中,我试图编译的程序“facedetect.cpp”位于c:\openCV\samples\c中 DevCpp中工具->编译器中的OpenCV编译器配置为: 编译器命令 -L"C:\opencv\build\x86\mi

关于我的环境的一点描述: 在Windows Vista Home Premium SP1 32位上使用OpenCV 2.3.1的DevCpp 4.9.9.2

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

DevCpp中工具->编译器中的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。尝试重新安装应用程序

未找到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\蘑菇.cpp,得到了输出窗口,在该窗口中打印了程序的详细信息、关于其作者的信息等,但随后我收到了windows消息:“FirstCVproj已停止工作”

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

-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日:

<>我强烈建议您<强>移动到另一个编译器,如果您考虑VisualStudio Express(它是免费的),可以。

编辑

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

编辑


不要以
-llibopencv\u core231
的形式包含库文件,而要以
-lopencv\u core231
的形式包含库文件。在命令行中,可以看到您正在将此路径添加为库路径:

-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日:

<>我强烈建议您<强>移动到另一个编译器,如果您考虑VisualStudio Express(它是免费的),可以。

编辑

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

编辑


不要将库文件包括为
-llibopencv_core231
,请分别按照
-lopencv_core231

“libopencv_core231.dll.a”和“libopencv_core231.dll”以及其他类似文件的方式包含在c:\opencv\build\x86\mingw\lib和\bin文件夹中,我从来没有在微软VC++中工作过,我发现它的负载太大:)因此我已经使用devcpp很长时间了,现在仍然在使用它。好吧,这完全取决于你。但我不知道有哪一个灵魂能以使用Dev-C++开发商业应用程序为生。另一个轻量级IDE是。顺便说一句,您应该添加的库目录不是带有DLL的目录,而是带有.a文件的目录。我没有制作任何商业应用程序。我正试图建立一个基于网络摄像头的眼球跟踪器来移动我的光标,就像youtube上的那些家伙一样。太棒了。顺便说一句,我添加的库目录包含库文件,而不是.dll文件。我添加的二进制文件路径有.DLL文件,好吧!我刚刚删除了Systemenivronment变量路径中二进制文件路径后的分号,它成功了!但这里有一个新的东西:输出表单Debug(调试)###################'cv1.exe':加载的'C:\opencv build\x86\vc10\bin\opencvu highgui231.dll',无法找到或打开PDB文件'cv1.exe':加载的'C:\Windows\System32\user32.dll'无法找到或打开PDB文件#这意味着什么?找不到PDB文件?不管怎样,我把一张图片作为参数传递(为此我不得不在vc++hehe中搜索如何传递参数),结果它显示出来了,谢谢。您的配置教程的工作原理与c:\opencv\build\x86\mingw\lib和\bin文件夹中的“libopencv\u core231.dll.a”和“libopencv\u core231.dll”以及其他类似教程非常相似,我从来没有在微软VC++中工作过,我发现它的负载太大:)因此我已经使用devcpp很长时间了,现在仍然在使用它。好吧,这完全取决于你。但我不知道有哪一个灵魂能以这种方式为生