Win10下OmniORB V4.2.3编译致命错误求助
解决OmniORB V4.2.3编译时的Python路径错误与idlpython.cc编译问题
针对你遇到的两类问题,我给你梳理下具体的解决步骤:
一、解决/cygdrive/c/Software/Python/Python36命令未找到的问题
这个错误的核心是VS的命令行环境(CMD)不识别Cygwin的路径格式,而且你配置的PYTHON路径可能没有指向可执行文件:
- 打开对应平台的mk文件(如果是编译64位,后面会说要换成x64的配置文件),把
PYTHON = /cygdrive/c/Software/Python/Python36改成Windows原生路径格式:# 推荐用正斜杠,避免makefile里的转义问题 PYTHON = C:/Software/Python/Python36 # 或者直接指定python.exe的完整路径,更稳妥 PYTHON = C:/Software/Python/Python36/python.exe - 在VS2017的x64命令行里,先手动验证Python是否能正常调用:输入
python --version,如果提示找不到命令,检查PATH里的Python路径是不是Windows风格的(比如C:\Software\Python\Python36),而不是Cygwin的/cygdrive/...路径——毕竟VS命令行是CMD环境,不支持Cygwin的路径别名。
二、解决idlpython.cc的C2006、C1083编译错误
这类错误大多是头文件路径配置错误、平台位数不匹配导致的,按以下步骤排查:
- 确认平台配置文件是否匹配64位编译:你启动的是
vcvarsall.bat x64(64位编译环境),但目前用的是x86_win32_vs_15.mk(32位平台配置),这会导致编译参数、路径不兼容。你需要:- 打开
config.mk,取消platform = x86_win64_vs_15的注释,同时注释掉x86_win32_vs_15的配置 - 编辑
mk\platforms\x86_win64_vs_15.mk,添加正确的PYTHON路径和头文件包含路径
- 打开
- 添加Python头文件的包含路径:在对应的平台mk文件(比如
x86_win64_vs_15.mk)里,添加Python头文件的编译参数:PYTHON_INCLUDES = -I"C:/Software/Python/Python36/include" # 把这个变量合并到CXXFLAGS里,确保编译时能找到Python.h CXXFLAGS += $(PYTHON_INCLUDES) - 验证Python版本位数:确保你安装的Python3.6.5是64位版本,如果是32位Python,和64位的VS编译环境不兼容,也会导致头文件找不到或编译错误。
- 检查idlpython.cc的include语句:打开
src/idlpython/idlpython.cc,确认里面的#include <Python.h>语句语法正确(尖括号或引号使用正确,文件名没有拼写错误),如果是用引号的话,要确保相对路径正确,不过更推荐用尖括号配合上面的PYTHON_INCLUDES来指定头文件路径。
最后验证
修改完配置后,在VS2017的x64命令行里先执行make clean清理之前的编译缓存,再重新执行make export即可。
内容的提问来源于stack exchange,提问作者wes
相关产品推荐
相关产品推荐

