使用Code :: Blocks

时间:2019-05-12 11:12:16

标签: python c++ windows opencv codeblocks

我想安装Opencv,并按照本教程进行操作:https://medium.com/@sourabhjigjinni/install-opencv-4-0-0-for-c-windows-7-10-code-blocks-tdm-gcc-64-dff65addf162

我一步一步地遵循它,将其构建在代码块中,但是在大约99%的构建中,我得到了错误: 致命错误:Python.h:没有这样的文件或目录。

Pc:Windows 10,64位,已安装python3。

我在编译器的“搜索目录”部分中将完整路径添加到python包含目录。 我在用Cmake生成Makefile时检查了python.exe和include目录的路径是否已填充。 我也浏览了很多论坛,但从未找到满意的答案...

[ 99%] Building CXX object modules/python3/CMakeFiles/opencv_python3.dir/__/src2/cv2.cpp.obj
cd /d C:\opencv\build\modules\python3 && C:\TDM-GCC-64\bin\g++.exe  -DCVAPI_EXPORTS -D_USE_MATH_DEFINES -D__OPENCV_BUILD=1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS @CMakeFiles/opencv_python3.dir/includes_CXX.rsp -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Winit-self -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -fdiagnostics-show-option -Wno-long-long -fomit-frame-pointer -ffunction-sections -fdata-sections  -msse -msse2 -msse3 -fvisibility=hidden -fvisibility-inlines-hidden -Wno-unused-function -Wno-deprecated-declarations -Wno-overloaded-virtual -Wno-undef -O3 -DNDEBUG  -DNDEBUG   -std=c++11 -o CMakeFiles\opencv_python3.dir\__\src2\cv2.cpp.obj -c C:\opencv\source\opencv-4.1.0\modules\python\src2\cv2.cpp

C:\opencv\source\opencv-4.1.0\modules\python\src2\cv2.cpp:9:20: fatal error: Python.h: No such file or directory

compilation terminated.
mingw32-make.exe[2]: *** [modules/python3/CMakeFiles/opencv_python3.dir/__/src2/cv2.cpp.obj] Error 1
mingw32-make.exe[1]: *** [modules/python3/CMakeFiles/opencv_python3.dir/all] Error 2
mingw32-make.exe: *** [all] Error 2
modules\python3\CMakeFiles\opencv_python3.dir\build.make:62: recipe for target 'modules/python3/CMakeFiles/opencv_python3.dir/__/src2/cv2.cpp.obj' failed
mingw32-make.exe[2]: Leaving directory 'C:/opencv/build'
CMakeFiles\Makefile2:3512: recipe for target 'modules/python3/CMakeFiles/opencv_python3.dir/all' failed
mingw32-make.exe[1]: Leaving directory 'C:/opencv/build'
C:/opencv/build/Makefile:161: recipe for target 'all' failed
Process terminated with status 2 (0 minute(s), 37 second(s))
4 error(s), 0 warning(s) (0 minute(s), 37 second(s))

好吧,我尽我所能让编译器知道Python.h在哪里,但是它似乎没有用。让我知道您是否需要更多数据。

2 个答案:

答案 0 :(得分:1)

好吧,我从头开始重建了所有内容(删除了opencv / build文件夹的内容+用Cmake重新生成了CMakeFiles),并且它自己构建了,没有任何错误。 我的错 : -首次构建OpenCV.cbp时,未在code :: blocks的“搜索目录”中指定python include目录路径。 -经过几次不成功的构建后,我更改了python版本,并在Cmake中实现了所有python路径,并将include dir路径添加到code :: blocks

问题:OpenCV.cbp并未考虑所有更改,即使重建了它(idk为什么),并一直要求使用Python.h

解决问题: 在构建OpenCV.cbp之前,请确保Cmake中指定的python路径正确,然后将python包含目录添加到code :: blocks“搜索目录”中,这不是我的情况。 然后,构建!

答案 1 :(得分:0)

似乎Cmake在目录Python.h中找不到@Cmakefiles/opencv_python.dir头文件。

尝试的事情:

  • 您可能需要尝试在Cmake界面中找到如何设置@Cmakefiles/opencv_python.dir标志的方法,或者在CMakeLists.txt中手动进行设置,并将其设置到正确的Python.h位置。

  • 还要确保Cmakes Python的include路径标志正确(PYTHON_INCLUDE=/path/to/python/include/)。

  • 最后,请按照此帖子here和您的Python位置来确保正确设置了Python路径。

编辑: 我能够按照说明进行操作,并获得了构建和运行网络摄像头的演示。已在Windows 10和Python 3.7.1上进行了测试。不确定完全重新安装后该如何尝试。如果您有任何疑问或想了解特定的信息,请告诉我。如果我想尝试任何方法,我将编辑这篇文章。祝你好运。