繁体   English   中英

构建OpenSSL来编译Python的可移植版本

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM