linux 下怎样生成openssl的静态文件

时间:2021-11-02 13:13:26
 tar -xvzf openssl-0.9.8e.tar.gz
cd openssl-0.9.8e
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl
make
sudo make install

以上是生成动态文件的吧。
静态文件 .a .lib怎样生成呢? google过了,还是生成不了。

20 个解决方案

#1


./configure --disable-shared --enable-static ....
加上这两个参数试试。

#2


引用 1 楼 loaden 的回复:
./configure --disable-shared --enable-static ....
加上这两个参数试试。

还不行就自己手工修改下Makefile试试,去掉-shared

#3


readme看过没?
INSTALL看过没?
默认就是生成.a的,如果要so,./config shared。

#4


md5-x86_64.s:481: Error: 0xab9423a7 out range of signed 32bit displacement

#5


引用 4 楼 zzxap 的回复:
md5-x86_64.s:481: Error: 0xab9423a7 out range of signed 32bit displacement

换高版本的openssl试试

#6


目录下有一个libcrypto.a 这个就是 libeay32.a?跟 libeay32.a有什么区别

#7


openssl-0.9.8e 已经是最高的版本了吧?

#8


引用 7 楼 zzxap 的回复:
openssl-0.9.8e 已经是最高的版本了吧?

现在有1.0了吧。不过应该不是这个问题
md5-x86_64.s:481: Error: 0xab9423a7 out range of signed 32bit displacement
这个error是怎么回事?看这文件名,像是64位版本。

#9


root@ubuntu3:~/openssl-0.9.8e# ./config --disable-shared --enable-static  --prefix=/usr/local/openssl --openssldir=/usr/local/openssl

Operating system: x86_64-whatever-linux2
Configuring for linux-x86_64
Usage: Configure [no-<cipher> ...] [enable-<cipher> ...] [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-Kxxx] [no-hw-xxx|no-hw] [[no-]threads] [[no-]shared] [[no-]zlib|zlib-dynamic] [no-asm] [no-dso] [no-krb5] [386] [--prefix=DIR] [--openssldir=OPENSSLDIR] [--with-xxx[=vvv]] [--test-sanity] os/compiler[:flags]

#10


换成高版本的openssl 编译
./config --disable-shared --enable-static --prefix=/usr/local/openssl --openssldir=/usr/local/openssl

make

make install 都通过了。

但是找不到 libeay32.a 

openssl-1.0.0c目录下只有libcrypto.a 和libssl.a

#11


openssl-0.9.8h-1-src-setup下载地址:
http://ncu.dl.sourceforge.net/project/gnuwin32/openssl/0.9.8h-1/openssl-0.9.8h-1-src-setup.exe

迅雷可以DOWNLOAD

安装后,路径就是我跟你说的那个:
include 路径
C:\Program Files\GnuWin32\src\openssl\0.9.8h\openssl-0.9.8h\outinc
LIB路径:
C:\Program Files\GnuWin32\src\openssl\0.9.8h\openssl-0.9.8h\out
LIB:
libeay32.a 

#12


还有一点,我使用的是openssl-0.9.8h版本,它自带了libeay32.a

你使用其它版本,并且编译通过了,也许就不是libeay32.a,有可能是libeay32.lib

最后,使用OPENSSL工程下边,要把libeay32.dllCOPY过去

#13


系统是linux

#14


晕倒。。。

#15


顺便说一下,--disable-shared --enable-static对openssl无效,我记得是no-shared之类

#16


libeay32.a,libeay32.lib  都没生成

#17


我们两个使用的环境不同,libeay32.a,libeay32.lib 这个两个都是WIN32平台下

LINUX 你引用下边的看看:
http://blog.chinaunix.net/space.php?uid=20479991&do=blog&cuid=2195243

Verify that binary 'openssl' is linking against the correct ssl libraries...
 •[root@localhost /]# cd /usr/local
•[root@localhost local]# ldd /usr/local/ssl/bin/openssl
•        linux-gate.so.1 =>  (0x00c4b000)
•        libssl.so.0.9.8 => /usr/local/ssl-0.9.8l/lib/libssl.so.0.9.8 (0x00d5b000)
•        libcrypto.so.0.9.8 => /usr/local/ssl-0.9.8l/lib/libcrypto.so.0.9.8 (0x00110000)
•        libdl.so.2 => /lib/libdl.so.2 (0x005b2000)
•        libc.so.6 => /lib/libc.so.6 (0x00447000)
•        /lib/ld-linux.so.2 (0x0042a000)

#18


./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl

make

make install

原来系统中已经安装了openssl

#19


郁闷。还是不行

#20


linux下就叫libcrypto.a libssl.a

#1


./configure --disable-shared --enable-static ....
加上这两个参数试试。

#2


引用 1 楼 loaden 的回复:
./configure --disable-shared --enable-static ....
加上这两个参数试试。

还不行就自己手工修改下Makefile试试,去掉-shared

#3


readme看过没?
INSTALL看过没?
默认就是生成.a的,如果要so,./config shared。

#4


md5-x86_64.s:481: Error: 0xab9423a7 out range of signed 32bit displacement

#5


引用 4 楼 zzxap 的回复:
md5-x86_64.s:481: Error: 0xab9423a7 out range of signed 32bit displacement

换高版本的openssl试试

#6


目录下有一个libcrypto.a 这个就是 libeay32.a?跟 libeay32.a有什么区别

#7


openssl-0.9.8e 已经是最高的版本了吧?

#8


引用 7 楼 zzxap 的回复:
openssl-0.9.8e 已经是最高的版本了吧?

现在有1.0了吧。不过应该不是这个问题
md5-x86_64.s:481: Error: 0xab9423a7 out range of signed 32bit displacement
这个error是怎么回事?看这文件名,像是64位版本。

#9


root@ubuntu3:~/openssl-0.9.8e# ./config --disable-shared --enable-static  --prefix=/usr/local/openssl --openssldir=/usr/local/openssl

Operating system: x86_64-whatever-linux2
Configuring for linux-x86_64
Usage: Configure [no-<cipher> ...] [enable-<cipher> ...] [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-Kxxx] [no-hw-xxx|no-hw] [[no-]threads] [[no-]shared] [[no-]zlib|zlib-dynamic] [no-asm] [no-dso] [no-krb5] [386] [--prefix=DIR] [--openssldir=OPENSSLDIR] [--with-xxx[=vvv]] [--test-sanity] os/compiler[:flags]

#10


换成高版本的openssl 编译
./config --disable-shared --enable-static --prefix=/usr/local/openssl --openssldir=/usr/local/openssl

make

make install 都通过了。

但是找不到 libeay32.a 

openssl-1.0.0c目录下只有libcrypto.a 和libssl.a

#11


openssl-0.9.8h-1-src-setup下载地址:
http://ncu.dl.sourceforge.net/project/gnuwin32/openssl/0.9.8h-1/openssl-0.9.8h-1-src-setup.exe

迅雷可以DOWNLOAD

安装后,路径就是我跟你说的那个:
include 路径
C:\Program Files\GnuWin32\src\openssl\0.9.8h\openssl-0.9.8h\outinc
LIB路径:
C:\Program Files\GnuWin32\src\openssl\0.9.8h\openssl-0.9.8h\out
LIB:
libeay32.a 

#12


还有一点,我使用的是openssl-0.9.8h版本,它自带了libeay32.a

你使用其它版本,并且编译通过了,也许就不是libeay32.a,有可能是libeay32.lib

最后,使用OPENSSL工程下边,要把libeay32.dllCOPY过去

#13


系统是linux

#14


晕倒。。。

#15


顺便说一下,--disable-shared --enable-static对openssl无效,我记得是no-shared之类

#16


libeay32.a,libeay32.lib  都没生成

#17


我们两个使用的环境不同,libeay32.a,libeay32.lib 这个两个都是WIN32平台下

LINUX 你引用下边的看看:
http://blog.chinaunix.net/space.php?uid=20479991&do=blog&cuid=2195243

Verify that binary 'openssl' is linking against the correct ssl libraries...
 •[root@localhost /]# cd /usr/local
•[root@localhost local]# ldd /usr/local/ssl/bin/openssl
•        linux-gate.so.1 =>  (0x00c4b000)
•        libssl.so.0.9.8 => /usr/local/ssl-0.9.8l/lib/libssl.so.0.9.8 (0x00d5b000)
•        libcrypto.so.0.9.8 => /usr/local/ssl-0.9.8l/lib/libcrypto.so.0.9.8 (0x00110000)
•        libdl.so.2 => /lib/libdl.so.2 (0x005b2000)
•        libc.so.6 => /lib/libc.so.6 (0x00447000)
•        /lib/ld-linux.so.2 (0x0042a000)

#18


./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl

make

make install

原来系统中已经安装了openssl

#19


郁闷。还是不行

#20


linux下就叫libcrypto.a libssl.a

#21