[英]Building OpenSSL to compile portable version of Python
我正在尝试从源代码构建Python,并且需要包括SSL模块,以便我的网络抓取工具可以使用它。
我遇到了找不到SSL的问题,因此我从源代码下载并构建了OpenSSL。 问题是,我需要与OpenSSL一起安装开发库,以便Python在运行make
时正确运行-lssl
参数。 我似乎找不到任何有关如何使用开发库构建OpenSSL的文档,即使我确定它一定很简单,我只是想念它。
我必须从源头上做到这一点; 没有包管理器。 我有我的理由。
编辑:我已经更改了一些python配置设置以尝试解决问题,这是我现在得到的编译错误:
gcc -pthread -Xlinker -export-dynamic -o python \\ Modules/python.o \\ libpython2.7.a -lpthread -ldl -lutil -L/home/[username]/openssl-src -lssl -lcrypto -lm
libpython2.7.a(posixmodule.o)(.text+0x4016): In function posix_tmpnam':<br /> ./Modules/posixmodule.c:7346: warning: the use of
tmpnam_r' is dangerous, better use mkstemp' libpython2.7.a(posixmodule.o)(.text+0x3f76): In function
posix_tempnam': ./Modules/posixmodule.c:7301: warning: the use of tempnam' is dangerous, better use
mkstemp'
./python: error while loading shared libraries: libssl.so.1.0.0: cannot open shared object file: No such file or directory
make: * [sharedmods] Error 127
查找“ /home/[username]/openssl-src
目录中确实存在的文件”时,抛出“没有这样的文件或目录”。
默认的OpenSSL构建应使用make install
适当的头文件和库,只需确保为configure脚本提供正确的前缀(例如./configure --prefix=/usr
)。
如果失败,请发布gcc显示的确切错误。
顺便说一下,请考虑使用诸如buildout之类的自动化工具来构建Python。 我认为标准配方可以照顾到SSL支持(甚至可能下载并编译OpenSSL),尽管我对此不确定。
这个答案不能完全回答我的问题,但是我确实找到了我需要知道的内容,因此将其发布在这里。 我不得不将要查找的SSL文件的位置更改为/usr
而不是/usr/local
。 默认情况下,RedHat在/usr/lib
具有所有共享库,而不是在/usr/local/lib
,这是它默认查找的位置。
在Bourne Shell(/ bin / sh或/ bin / bash)中:
$ LD_LIBRARY_PATH=/usr/local/lib
$ export LD_LIBRARY_PATH
$ make
在C-shell(/ bin / csh或/ bin / tcsh)中:
% setenv LD_LIBRARY_PATH /usr/local/lib
% make
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.