mips环境下openssl交叉编译

​ 最近需要使用openssl库,选用了 https://www.openssl.org/ 地址下的OpenSSL 1.0.1p版本。

​ 如果只是正常环境下使用openssl,编译比较简单,只需要解压缩openssl 1.0.1p版本,然后进入根目录按照如下命令: make & make install

​ 这样就可以在编译并安装到/user/local路径下面。

​ 一般情况下,我们需要把openssl应用到不同的环境中,这样需要我们进行交叉编译。

​ 以下交叉编译的步骤:

  1. ​ 修改makefile

​ 我们可以在openssl的根目录下找到makefile文件。需要修改的地方如下:

CC= mipsel-openwrt-linux-gcc

AR= mipsel-openwrt-linux-ar $(ARFLAGS) r

RANLIB= mipsel-openwrt-linux-ranlib

NM= mipsel-openwrt-linux-nm

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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

​ 修改完成保存。

2. 执行make

​ 即可看到在根目录下有动态库:

​ libcrypto.so、 libcrypto.so.1.0.0、 libssl.so、 libssl.so.1.0.0 和 静态库libcrypto.a、libssl.a。

​ 拷贝自己所需库即可。