我正在尝试使用M2Crypto 1.0.0c(或0.9.7m)在Windows上为Python 2.5.4构建OpenSSL 0.21.1,但SWIG正在密谋反对我。我已经尝试了SWIG 2.0.1和SWIG 1.3.40,我得到了同样的错误:
swigging SWIG/_m2crypto.i to SWIG/_m2crypto_wrap.c
C:\Development\swigwin-1.3.40\swig.exe -python -IC:\Development\Python-2.5.4\include -IC:\Development\Python-2.5.4\PC -Ic:\Development\openssl-0.9.7m\include -includeall -o SWIG/_m2crypto_wrap.c SWIG/_m2crypto.i
c:\Development\openssl-0.9.7m\include\openssl\opensslv.h(1): Error: Syntax error in input(1).
OpenSSL / SWIG的所有排列都显示此错误。我尝试过手工调用swig并传递所有“额外详细”的选项,但是没有一个甚至接近提供信息。我还能做些什么来试图找到这个问题的真正来源?
(本网站上有建议编辑M2Crypto的.i文件,但0.21.1已经集成了建议的更改)
答案 0 :(得分:2)
实际上这里的问题不是SWIG,但是我会给下一个出现的M2Crypto用户留下这个问题/答案 - 也许它会帮助他们。
问题是M2Crypto setup.py默认指向<your openssl dir>/include
,但如果该openssl目录是源树,则include/
不适合查看(至少在Windows上) ) - 你需要查看inc32/
,否则opensslv.h
只是指向不同文件的一行,这就是为什么SWIG会在第1行轰炸。