最近需要使用openssl库,选用了https://www.openssl.org/地址下的OpenSSL 1.0.1p版本
如果只是正常环境下使用openssl,编译比较简单,只需要解压缩openssl 1.0.1p版本
然后进入根目录按照如下命令:
1、./configure --prefix=/user/local
2、make & make install
这样就可以在编译并安装到/user/local路径下面。
一般情况下,我们需要把openssl应用到不同的环境中,这样需要我们进行交叉编译。
以下交叉编译的步骤:
1、./configure no-asm shared --prefix=/user/local/mips
2、修改makefile
我们可以在openssl的根目录下找到makefile文件。需要修改的通过红色标注出来,也就是我修改过的地方
CC= mipsel-openwrt-linux-gcc
CFLAG= -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -O3 -Wall
DEPFLAG= -DOPENSSL_NO_EC_NISTP_64_GCC_128 -DOPENSSL_NO_GMP -DOPENSSL_NO_JPAKE -DOPENSSL_NO_MD2 -DOPENSSL_NO_RC5 -DOPENSSL_NO_RFC3779 -DOPENSSL_NO_SCTP -DOPENSSL_NO_STORE -DOPENSSL_NO_UNIT_TEST
PEX_LIBS=
EX_LIBS= -ldl
EXE_EXT=
ARFLAGS=
AR= mipsel-openwrt-linux-ar $(ARFLAGS) r
RANLIB= mipsel-openwrt-linux-ranlib
NM= mipsel-openwrt-linux-nm
PERL= /usr/bin/perl
TAR= tar
TARFLAGS= --no-recursion --record-size=10240
MAKEDEPPROG= gcc
LIBDIR=lib
修改完成保存。
如果是mips交叉编译,修改完makefile后仍需要将此makefile文件中的-m64 后缀全部去掉。
makefile全篇应该一共只有两处。
3、执行make,即可看到在根目录下有动态库libcrypto.so libcrypto.so.1.0.0 libssl.so libssl.so.1.0.0 和 静态库libcrypto.a libssl.a。