Windows Mingw32-make "no such file"安装OpenCV时出错



我一直在尝试用CMake 3.22.0-rc1从源代码构建OpenCV-4.5.1。当执行"mingw32-make"时,出现如下问题:我猜是CMakeList出了问题,但我不确定。我发现没有这样的文件名为"thread.c.obj",所以我试着用gcc编译thread.c,但是发生了一些引用错误(如果需要,我会在评论区发布截图或复制/粘贴错误)

这是错误的描述:

D:Codeopencvsourcesbuild>mingw32-make
[  0%] Built target opencv_highgui_plugins
[  0%] Building C object 3rdparty/openjpeg/openjp2/CMakeFiles/libopenjp2.dir/thread.c.obj
process_begin: CreateProcess(C:Users12271AppDataLocalTempmake6172-1.bat, C:Users12271AppDataLocalTempmake6172-1.bat, ...) failed.
make (e=2): 系统找不到指定的文件。//which means there's no such file
mingw32-make[2]: *** [3rdpartyopenjpegopenjp2CMakeFileslibopenjp2.dirbuild.make:76: 3rdparty/openjpeg/openjp2/CMakeFiles/libopenjp2.dir/thread.c.obj] Error 2
mingw32-make[1]: *** [CMakeFilesMakefile2:1650: 3rdparty/openjpeg/openjp2/CMakeFiles/libopenjp2.dir/all] Error 2
mingw32-make: *** [Makefile:165: all] Error 2

这是我第一次在这个论坛提问,对提问格式不熟悉,如有不妥之处请告诉我。谢谢!

你得到的错误是来自mingw32-make试图运行.bat文件,这不能由CreateProcess(内部用于执行程序)运行,因为它需要像CMD /C这样的东西来运行。

你可以尝试使用CMake标志-GNinja结合忍者作为构建工具。这也更快了。

另一个解决方案是在构建时提供所有第三方先决条件,因此CMake不必从3rdparty文件夹中构建所有内容。

或者您可以从命令提示符切换到MSYS2 shell。由于它的行为非常像Linux/Unix提示符,因此可以立即构建更好的库(因为这完全避免了调用.bat文件)。

相关内容

  • 没有找到相关文章

最新更新