如何提供 SWIG 的包含路径?
How to provide include path to SWIG?
我正在尝试构建 M2Crypto 库,但是 swig
没有找到 header 个文件:
M2Crypto@(master=)$ python setup.py build
running build
running build_py
running build_ext
building 'M2Crypto.__m2crypto' extension
swigging SWIG/_m2crypto.i to SWIG/_m2crypto_wrap.c
swig -python -I/usr/include/python2.7 -I/usr/include -includeall -modern -builtin -outdir build/lib.linux-i686-2.7/M2Crypto -o SWIG/_m2crypto_wrap.c SWIG/_m2crypto.i
SWIG/_evp.i:12: Error: Unable to find 'openssl/opensslconf.h'
SWIG/_ec.i:7: Error: Unable to find 'openssl/opensslconf.h'
error: command 'swig' failed with exit status 1
我有 OpenSSL headers,包括 openssl/opensslconf.h
,在 /usr/include/i386-linux-gnu
- 这是 openssl-dev
包安装它们的地方。此路径未传递给 swig; setup.py
好像什么都不知道
这看起来像是程序包(即 M2Crypto)的错误(或问题)吗?什么是正确的修复?
原因是 libssl-dev 将 opensslconf.h 移动到依赖于体系结构的子树 /usr/include/x86_64-linux-gnu 中。根据您的体系结构,目录可能会有所不同。
有两种可能的解决方法(都可以):
选项 1:将文件软链接到更改前的位置:
sudo ln -s /usr/include/x86_64-linux-gnu/openssl/opensslconf.h /usr/include/openssl/opensslconf.h
这在
中也有描述
选项 2:在 M2Crypto 的 setup.py 中,将体系结构特定目录添加到 swig 命令使用的包含路径中:
-I/usr/include/x86_64-linux-gnu
这在this article
中也有描述
在 M2Crypto 项目中也有 issue 69 开放的。
安迪
我正在尝试构建 M2Crypto 库,但是 swig
没有找到 header 个文件:
M2Crypto@(master=)$ python setup.py build
running build
running build_py
running build_ext
building 'M2Crypto.__m2crypto' extension
swigging SWIG/_m2crypto.i to SWIG/_m2crypto_wrap.c
swig -python -I/usr/include/python2.7 -I/usr/include -includeall -modern -builtin -outdir build/lib.linux-i686-2.7/M2Crypto -o SWIG/_m2crypto_wrap.c SWIG/_m2crypto.i
SWIG/_evp.i:12: Error: Unable to find 'openssl/opensslconf.h'
SWIG/_ec.i:7: Error: Unable to find 'openssl/opensslconf.h'
error: command 'swig' failed with exit status 1
我有 OpenSSL headers,包括 openssl/opensslconf.h
,在 /usr/include/i386-linux-gnu
- 这是 openssl-dev
包安装它们的地方。此路径未传递给 swig; setup.py
好像什么都不知道
这看起来像是程序包(即 M2Crypto)的错误(或问题)吗?什么是正确的修复?
原因是 libssl-dev 将 opensslconf.h 移动到依赖于体系结构的子树 /usr/include/x86_64-linux-gnu 中。根据您的体系结构,目录可能会有所不同。
有两种可能的解决方法(都可以):
选项 1:将文件软链接到更改前的位置:
sudo ln -s /usr/include/x86_64-linux-gnu/openssl/opensslconf.h /usr/include/openssl/opensslconf.h
这在
选项 2:在 M2Crypto 的 setup.py 中,将体系结构特定目录添加到 swig 命令使用的包含路径中:
-I/usr/include/x86_64-linux-gnu
这在this article
中也有描述在 M2Crypto 项目中也有 issue 69 开放的。
安迪