亭台六七座 2025-04-10 20:57 采纳率: 26.1%
浏览 119

MINGW编译OPENCV出错Error 2是怎么回事呢

img


D:\third_party\OpenCV4.7.0\opencv\sources\modules\core\src\parallel.cpp: In function 'int cv::getThreadNum()':
D:\third_party\OpenCV4.7.0\opencv\sources\modules\core\src\parallel.cpp:800:32: error: 'pthread_self' was not declared in this scope
  800 |     return (int)(size_t)(void*)pthread_self(); // no zero-based indexing
      |                                ^~~~~~~~~~~~
mingw32-make[2]: *** [modules\core\CMakeFiles\opencv_core.dir\build.make:988: modules/core/CMakeFiles/opencv_core.dir/src/parallel.cpp.obj] Error 1
mingw32-make[1]: *** [CMakeFiles\Makefile2:1923: modules/core/CMakeFiles/opencv_core.dir/all] Error 2
mingw32-make: *** [Makefile:165: all] Error 2

MINGW编译OPENCV出错Error 2是怎么回事呢?

  • 写回答

4条回答 默认 最新

  • 阿里嘎多学长 2025-04-10 20:57
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    问题解答

    MINGW编译OpenCV时出现Error 2,通常是因为编译器找不到某个头文件或库文件。根据你的问题描述,错误发生在parallel.cpp文件中,这个文件是OpenCV的核心模块。

    可能的解决方案:

    1. 检查OpenCV的安装是否正确,确保所有头文件和库文件都已经安装到正确的路径。
    2. 检查你的编译器是否正确地链接了OpenCV的库文件。可以尝试使用-l选项来指定库文件的路径,例如:
    g++ -o your_program your_program.cpp -I/path/to/opencv/include -L/path/to/opencv/lib -lopencv_core
    

    其中,/path/to/opencv/include是OpenCV的头文件路径,/path/to/opencv/lib是OpenCV的库文件路径。

    1. 如果上述方法不行,可以尝试使用-v选项来查看编译器的详细输出信息,可能会发现具体的错误原因。

    如果你已经尝试了上述方法仍然无法解决问题,请提供更多的错误信息和编译命令,我将尽力帮助你解决问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 4月10日