python - 使用 Code::Blocks 构建 OpenCV.cbp 时出现 Python.h 问题

标签 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% 构建时我得到了错误: fatal error :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 在哪里,但它似乎不起作用。如果您需要更多数据,请告诉我。

最佳答案

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

问题:OpenCV.cbp 没有考虑所有的变化,即使重建它(idk why),并且一直要求 Python.h

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

关于python - 使用 Code::Blocks 构建 OpenCV.cbp 时出现 Python.h 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56098651/

相关文章:

python - 属性错误 : 'DataFrame' object has no attribute 'get_dtype_counts'

Python 将特定数据框列转换为整数

python - 在pygame中使用文本输入

python - 根据系统资源使用情况监视和终止 Python 脚本

c++ - 可移植编程 - Win32 链接失败但与 linux 链接失败

windows - 为什么我不能在 Windows 上使用 TortoiseMerge 作为我的 git merge 工具?

c++ - vector::erase() 也删除结构的成员 vector

c++ - goto语句与递归

c++ - 右键单击不同对象时,右键单击上下文菜单位置会发生变化

c# - 如何使用不同的方法获取 Windows 用户名?