无法使用opencv执行简单程序,错误"Can't find the entry point of the procedure"



以下代码编译时没有错误,但当我尝试执行它时,我得到了"过程入口点_ZSt24__throw_out_of_range_fmtPKcz无法在动态链接库libopencv_core2413.dll",葡萄牙语原始消息。

#include "opencv2/highgui.hpp"
#include "opencv2/core.hpp"
#include "opencv2/imgproc.hpp"
#include "opencv2/opencv.hpp"
#include "opencv2/opencv_modules.hpp"
int main()
{
  cv::Mat a;
  return 0;
}

嗯,最初我是从源代码构建的,在sourceforge链接下载https://sourceforge.net/projects/opencvlibrary/cmake版本为3.5.0-rc2,mingw版本为4.9.3,opencv版本为2.4.13。我已经在我的mingw上安装了haskell和allegro5库的ghc。

下载后,我在C:/opencv中提取了它。使用cmake gui,我将源文件夹设置为C:/opencv/sources,将构建设置为C://opencv/build。关于配置标志,我只是取消了BUILD_opencv_pyhon的标记,因为我没有安装python。这是配置和生成步骤的日志:

Detected version of GNU GCC: 49 (409)
CUDA compilation is disabled (due to only Visual Studio compiler supported on your platform).
General configuration for OpenCV 2.4.13 =====================================
  Version control:               unknown
  Platform:
    Host:                        Windows 10.0.10586 AMD64
    CMake:                       3.5.0-rc2
    CMake generator:             MinGW Makefiles
    CMake build tool:            C:/MinGW/bin/mingw32-make.exe
    Configuration:               Release
  C/C++:
    Built as dynamic libs?:      YES
    C++ Compiler:                C:/MinGW/bin/g++.exe  (ver 4.9.3)
    C++ flags (Release):         -fsigned-char -mstackrealign -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wno-narrowing -Wno-delete-non-virtual-dtor -Wno-array-bounds -Wno-aggressive-loop-optimizations -fdiagnostics-show-option -march=i686 -fomit-frame-pointer -msse -msse2 -mfpmath=sse -ffunction-sections -O2 -DNDEBUG  -DNDEBUG
    C++ flags (Debug):           -fsigned-char -mstackrealign -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wno-narrowing -Wno-delete-non-virtual-dtor -Wno-array-bounds -Wno-aggressive-loop-optimizations -fdiagnostics-show-option -march=i686 -fomit-frame-pointer -msse -msse2 -mfpmath=sse -ffunction-sections -g  -O0 -DDEBUG -D_DEBUG
    C Compiler:                  C:/MinGW/bin/gcc.exe
    C flags (Release):           -fsigned-char -mstackrealign -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wno-narrowing -Wno-array-bounds -Wno-aggressive-loop-optimizations -fdiagnostics-show-option -march=i686 -fomit-frame-pointer -msse -msse2 -mfpmath=sse -ffunction-sections -O2 -DNDEBUG  -DNDEBUG
    C flags (Debug):             -fsigned-char -mstackrealign -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wno-narrowing -Wno-array-bounds -Wno-aggressive-loop-optimizations -fdiagnostics-show-option -march=i686 -fomit-frame-pointer -msse -msse2 -mfpmath=sse -ffunction-sections -g  -O0 -DDEBUG -D_DEBUG
    Linker flags (Release):      
    Linker flags (Debug):        
    Precompiled headers:         YES
  OpenCV modules:
    To be built:                 core flann imgproc highgui features2d calib3d ml video legacy objdetect photo gpu ocl nonfree contrib stitching superres ts videostab
    Disabled:                    python world
    Disabled by dependency:      -
    Unavailable:                 androidcamera dynamicuda java viz
  Windows RT support:            NO
  GUI: 
    QT:                          NO
    Win32 UI:                    YES
    OpenGL support:              NO
    VTK support:                 NO
  Media I/O: 
    ZLib:                        build (ver 1.2.7)
    JPEG:                        build (ver 62)
    PNG:                         build (ver 1.5.12)
    TIFF:                        build (ver 42 - 4.0.2)
    JPEG 2000:                   build (ver 1.900.1)
    OpenEXR:                     build (ver 1.7.1)
  Video I/O:
    Video for Windows:           YES
    DC1394 1.x:                  NO
    DC1394 2.x:                  NO
    FFMPEG:                      YES (prebuilt binaries)
      codec:                     YES (ver 55.18.102)
      format:                    YES (ver 55.12.100)
      util:                      YES (ver 52.38.100)
      swscale:                   YES (ver 2.3.100)
      resample:                  NO
      gentoo-style:              YES
    OpenNI:                      NO
    OpenNI PrimeSensor Modules:  NO
    PvAPI:                       NO
    GigEVisionSDK:               NO
    DirectShow:                  YES
    Media Foundation:            NO
    XIMEA:                       NO
    Intel PerC:                  NO
  Other third-party libraries:
    Use IPP:                     NO
    Use Eigen:                   NO
    Use TBB:                     NO
    Use OpenMP:                  NO
    Use GCD                      NO
    Use Concurrency              NO
    Use C=:                      NO
    Use Cuda:                    NO
    Use OpenCL:                  YES
  OpenCL:
    Version:                     dynamic
    Include path:                C:/opencv/sources/3rdparty/include/opencl/1.2
    Use AMD FFT:                 NO
    Use AMD BLAS:                NO
  Python:
    Interpreter:                 D:/Ferramentas/[Ferramenta]_Phyton/python.exe (ver 2.7.10)
  Java:
    ant:                         NO
    JNI:                         C:/Program Files/Java/jdk1.8.0_91/include C:/Program Files/Java/jdk1.8.0_91/include/win32 C:/Program Files/Java/jdk1.8.0_91/include
    Java tests:                  NO
  Tests and samples:
    Tests:                       YES
    Performance tests:           YES
    C/C++ Examples:              NO
  Install path:                  C:/opencv/build/install
  cvconfig.h is in:              C:/opencv/build
-----------------------------------------------------------------
CMake Warning at cmake/OpenCVPackaging.cmake:23 (message):
  CPACK_PACKAGE_VERSION does not match version provided by version.hpp
  header!
Call Stack (most recent call first):
  CMakeLists.txt:1105 (include)

Configuring done
Generating done

我尝试过opencv的其他版本,最近的2.4.7等等。每次我只是构建它,在尝试执行编译后都会出现同样的错误。我已经尝试为gcc C:\mingw\bin\gcc.exe和g++C:\mingw\bin\g++.exe指定编译器(我安装了其他版本的mingw)。运气不好,同样的错误。我试着安装了一个新版本的mingw,并把它放在C:\mingwnew中,我指定了编译器,用于gcc C:\mingwnew\bin\gcc.exe和g++C:\mingwnew\bin\g++.exe。运气不好。

生成后,我只进入文件夹c:\opencv\build,然后键入c:\mingw\bin\mingw32-make.exe(或者在另一次尝试中键入c:\mingwnew\bin\ming w32-makeexe)。有一些关于opencv代码本身的警告(我尝试过一些不同的版本)。在那之后,它最终没有任何错误。我键入C:\mingw\bin\mingw32-make.exe install。之后,我有了一个新的文件夹C:\opencv\build\install\x86\mingw。在C:\opencv\build\install\x86\mingw\bin中有几个例子,试图执行它们。同样的错误。

之后我尝试过的事情:

  • 已将C:\opencv\build\install\x86\mingw文件夹复制到我的mingw。将库和dll复制到我的项目文件夹目录(路径中没有空格),将dll复制到system32文件夹。并尝试使用-Wall编译,没有错误,但当尝试执行时,出现了相同的错误。

  • 使用编译

    c:/mingw/bin/g++.exe-Wall-I"c:\opencv/build/install/include"loadimg.cpp libopencv_core2413.dll.a libopencv_higigui2413.dll.a-o loadimg,尝试静态编译。

  • 使用编译

    c:/mingw/bin/g++.exe-Wall-I"c:\opencv/build/install/include"-L"c:\opencc/build/ininstall/x86/mingw/lib"loadimg.cpp-lopencv_core 2413-lopencv _higigui2413-o loadimg

  • 尝试了依赖Walker,但在新SO(windows 10)中使用它时只出现了一些错误,我在这里的另一个线程中发现了它,但它没有给我任何线索。

  • 已尝试opencv旧版本的预编译二进制文件。同样的错误。

  • 尝试了mingw64,我甚至无法编译一个hello世界。看起来里面还满是虫子。但我认为mingw32并不是问题所在,因为我以前以和mingw32(allegro5)相同的方式编译过其他库,而且它确实有效。

我搜索了很多,尝试了很多东西,包括尝试opencv-docs提供的其他示例代码。我不能安装linux,也不能使用另一台计算机,所以这是我唯一的选择,在构建了十几次opencv之后,两周后,我无法自己解决错误。

有什么线索,或者需要更多的信息吗?提前谢谢。

对于我来说,在OpenCVPackaging.cmake:中添加OPENCV_VCSVERSION=2.4.13(使用OPENCV版本2.4.13)

#in OpenCVPackaging.cmake file (line 23)
set(OPENCV_VCSVERSION "2.4.13") #<--add
set(CPACK_PACKAGE_VERSION "${OPENCV_VCSVERSION}")

错误在这一行:OpenCV 2.4.13 的常规配置

我今天出现了这个错误,因为有一个3.1.0版本,但是http://opencv.org/给出了2.4.13版本,因为它们的链接不匹配。

所以我从这里安装了最新版本,在这之后我没有更多的错误(就像下面的那个)。

CMake/OpenCVPackaging上的CMake警告。CMake:23(消息):CPACK_PACKAGE_VERSION与.hpp版本提供的版本不匹配头球调用堆栈(最近的调用优先):CMakeLists.txt:1105(包括)

抱歉英语不好。。。

OpenCV论坛上的一个答案是,你不能用2.4构建OpenCV_controib模块。

它建议您从github获取master分支。所以我就是这么做的。(无论如何,我在sourceforge链接上遇到了问题。)

在那之后,我再也没有出现CPACK_PACKAGE_VERSION does not match错误。

如前所述,当我们下载代码时会发生这种情况,而不是使用git进行克隆。最简单的方法是遵循opencv文档,并在编译之前检查所需的版本。

我遇到了和你相同的问题。我把MinGW-w64libstdc++-6.dll放在项目的目录中,它就工作了
解决方案就在这里
事实上,我仍然不明白为什么它有效。MinGW-w64中可能出现问题。

相关内容

  • 没有找到相关文章

最新更新