与 libstdc++-6.dll 相关的 OpenCV 应用程序崩溃
OpenCV application crash related to libstdc++-6.dll
我是一个opencv,C++,eclipse CDT初学者。我正在按照一个教程来学习opencv。然而,尽管我成功地编译了我的程序,但它在执行后不久就崩溃了。我通读了许多相关的问答,但没有得到一个可行的解决方案。任何建议都非常感谢。以下是一些规格供您参考:
系统设置
- 操作系统:32 位 Windows 7 专业版(虚拟机)
- IDE: CDT 8.2.0 for Eclipse Kepler
- C/C++ 编译器:mingw32-gcc (4.8.1)
- OpenCV 包: opencv2.4.6
详细程序
- 下载并解压缩了 Eclipse
- 已安装 MinGW 到 C:\MinGW。将"C:\MinGW\bin"设置为系统路径 [PATH]
- 下载并执行OpenCV到C:\opencv。将"C:\opencv\build\x86\mingw\bin"设置为系统路径 [PATH]
- 启动了 Eclipse 并在 Eclipse 中:
- 文件>新建>C++项目:项目名称->OpenCVTest,项目类型->你好世界C++项目,工具链->MinGW GCC
- 完成 在Project>Properties>C/C++ build>Settings>
- Tool Settings>GCC C++ Compiler>Include>Include path (-I) 中,我添加了"C:\opencv\build\include"。
- 在Project>Properties>C/C++ Build>Settings>Tool Settings>MinGW C++ Linker>Libraries>Libraries (-l) 中,我逐一添加了opencv_core246、opencv_highgui246和opencv_imgproc246。
- 在Project>Properties>C/C++ Build>Settings>Tool Settings>MinGW C++ Linker>Libraries>Libraries 搜索路径 (-L) 中,我添加了"C:\opencv\build\x86\mingw\lib"。
-
将 OpenCVTest.cpp 文件内容替换为以下内容:
#include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <iostream> using namespace cv; using namespace std; int main( int argc, char** argv ) { if( argc != 2) { cout <<" Usage: display_image ImageToLoadAndDisplay" << endl; return -1; } Mat image; image = imread(argv[1], CV_LOAD_IMAGE_COLOR); // Read the file if(! image.data ) // Check for invalid input { cout << "Could not open or find the image" << std::endl ; return -1; } namedWindow( "Display window", CV_WINDOW_AUTOSIZE );// Create a window for display. imshow( "Display window", image ); // Show our image inside it. waitKey(0); // Wait for a keystroke in the window return 0; }
-
生成项目并获得以下控制台输出(假设成功):
信息:内部生成器用于构建g++ "-IC:\opencv\build\include" -O0 -g3 -Wall -c -fmessage-length=0 -o "src\OpenCVTest.o" "..\src\OpenCVTest.cpp"g++ "-LC:\opencv\build\x86\mingw\lib" -o OpenCVTest.exe "src\OpenCVTest.o" -lopencv_core246 -lopencv_highgui246 -lopencv_imgproc246
-
运行生成的.exe而不传递图像路径(应该可以工作),程序崩溃并出现以下提示:
问题签名: 问题事件名称: 应用崩溃 应用程序名称:OpenCVTest.exe 应用程序版本:0.0.0.0 应用程序时间戳:5230da00 故障模块名称:libstdc++-6.dll 故障模块版本:0.0.0.0 故障模块时间戳:522c646d 异常代码:c0000005 异常偏移量:0001df4b 操作系统版本: 6.1.7600.2.0.0.256.48 区域设置 ID:1033 附加信息 1: 4c0d 其他信息 2: 4c0d4d78887f76d971d5d00f1f20a433 附加信息 3: 4c0d 其他信息 4: 4c0d4d78887f76d971d5d00f1f20a433
事实证明这不是由于libstdc++-6.dll。相关线程的答案:OpenVC 2.4.5,日食CDT Juno,MinGW错误0xc0000005实际上解决了我的问题。我没有成功,因为我将预构建的(随 opencv 下载一起提供的)opencv 库 (*.dll) 和重建的(根据上述解决方案)库都暴露在系统路径下。因此,我的程序使用了预构建的版本,忽略了新版本。在我用重建的 *.dll 替换后,程序运行没有任何问题。
- 如何在 docker 中使用静态 opencv 库编译 c++ 应用程序
- 在Linux/Ubuntu中编译openCV应用程序时,如何解决未定义的引用cv:..?
- Android OpenCV 应用程序的内存问题
- WINDOWS环境下的c++opencv应用程序的低延迟视频流
- IPP如何改进OpenCV应用程序?我该如何整合它
- 在 Eclipse 中使用 JNI 构建 OpenCV 应用程序
- Opencv应用程序在运行时崩溃,错误代码为0x0000142
- 为beaglebone black交叉编译c++openCV应用程序时出现问题
- 在Visual Studio中构建示例opencv应用程序时出错
- 确定模块化OpenCV应用程序的语言/框架
- 在服务器上编译OpenCV / C++应用程序
- 如何在 OpenCV 应用程序中更改跟踪栏的位置
- 与 libstdc++-6.dll 相关的 OpenCV 应用程序崩溃
- OpenCV应用程序(而非库)链接错误
- OpenCV C++应用程序在从Eclipse启动时立即终止
- 在树莓派上编译c++ opencv应用程序出错
- 交叉编译openCV应用程序
- 交叉编译opencv应用程序,未定义引用
- c++ opencv应用程序在c#窗口
- C++程序在OpenCV应用程序中不区分大小写字母