mips平台编译openssl-1.0.2s

mips平台编译openssl-1.0.2s

  • 下载源码
    https://github.com/openssl/openssl/releases/tag/OpenSSL_1_0_2s
  • 编译前配置
    解压完源码后,运行./configure来生成Makefile
	./Configure shared no-asm no-dso no-ec_nistp_64_gcc_128 no-gmp no-jpake no-krb5 no-md2 no-rc4 no-rc5 no-rfc3779 no-sctp no-store no-zlib no-zlib-dynamic no-static-engine linux-elf

注意:如果想在设备中运行openssl程序,则需要关注其读取库和配置文件的路径
要用–openssldir=DIR参数来指定自定义路径,否则默认为 /usr/local/ssl

也可以用./config来配置,但是实际操作发现用这个脚本无法用linux-elf参数来指定目标平台,它默认以编译服务器的x86_64来设置相关参数,(会影响相关编译宏,可能导致运行openssl浮点数异常错误等),到时候只能手动修改相关Makefile和头文件,总会有疏漏之处,不推荐。

其他参数可参考INSTALL文档或./Configure --help

  • 修改Makefile来交叉编译
    如果.Configure参数配置得当,Makefile只需稍作修改
    根据实际平台选择交叉编译工具
   #CC= gcc
   改为CC=mips64-octeon-linux-gnu-gcc

如果要禁用sslv2, v3, 要追加编译宏,否则不用加

	CFLAGS += -DOPENSSL_NO_SSL2 -DOPENSSL_NO_SSL3

选择编译哪些项目: 一般来说我们只需要库文件和openssl可执行文件

	#build_all: build_libs build_apps build_tests build_tools
	改为:build_all: build_libs build_apps
  • 编译
make

生成的库文件在当前目录下,openssl可执行文件在apps目录下
如果需要减小文件体积,可以使用strip

mips64-octeon-linux-gnu-strip libssl.so.1.0.0 libssl.a libcrypto.so.1.0.0 libcrypto.a ./apps/openssl
  • 头文件
    ./Configure完成后会生成include文件夹,如果有其他进程代码需要调用openssl的接口,需要将头文件路径指定到这里,或者将其复制到公共头文件目录便于包含。

  • end

你可能感兴趣的:(环境搭建)