交叉编译环境搭建
环境准备:Linux系统,gcc-4.9.3-64-gnu.tar.gz,openssl-1.0.2k.tar.gz
1、搭建mips64el-linux-gcc环境
(1)在/opt目录解压 gcc-4.9.3-64-gnu.tar.gz,把对应的 /opt/gcc-4.9.3-64-gnu/bin 目录添加到环境变量;
(2)编辑/etc/profile文件,在最后添加
export PATH=/opt/gcc-4.9.3-64-gnu/bin:$PATH
(3)使用
source /etc/profile
立即生效
2、通过mips64el-linux-gcc编译,安装openssl
(1) 解压openssl-1.0.2k.tar.gz,进入解压后的目录openssl-1.0.2k
(2) 暂时把环境变量换成mips gcc的,重启就会失效,这样不需要去Makefile文件修改了
export CC=/opt/gcc-4.9.3-64-gnu/bin/mips64el-linux-gcc
export CPP=/opt/gcc-4.9.3-64-gnu/bin/mips64el-linux-g++
export AR=/opt/gcc-4.9.3-64-gnu/bin/mips64el-linux-ar
export LD=/opt/gcc-4.9.3-64-gnu/bin/mips64el-linux-ld
export RANLIB=/opt/gcc-4.9.3-64-gnu/bin/mips64el-linux-ranlib
(3) 指定安装目录:
./config no-asm shared --prefix=/usr/local/mips
3、修改OpenSSL的Makefile文件
(1)修改Makefile,查找全文删掉 -m64 关键字
(2)修改以下配置
#SHLIB_MAJOR=1
#SHLIB_MINOR=0.0
SHLIB_MAJOR=10
SHLIB_MINOR=
(3)去掉中间的点
#SHLIB_EXT=.so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
SHLIB_EXT=.so.$(SHLIB_MAJOR)$(SHLIB_MINOR)
这种修改的地方在本文件还有两处,找到之后去掉中间的点‘.’即可,如图所示:
4、编译安装
然后执行 make 进行编译,如图
成功后可看到在当前目录生成了libcrypto.so库
执行 make install 安装即可
5、修改程序里的 Makefile
修改自己代码里边的 Makefile 文件,主要是添加头文件和库
头文件/usr/local/mips/include 和 库 /usr/local/mips/lib
且视他人之凝目如盏盏鬼火,大胆地去走自己的路。