最近在查arm平台上签名的问题, 遇到一个问题,需要openssl 的shared 库,竟然找不到交叉编译的方法
好不容易找了一个网站,上面有说到的,分享如下:
- static 库
./Configure no-asm --prefix=/home/gaowei/openssl os/compiler:arm-linux-gnueabihf-gcc
vi Makefile
remove -m64
对于pc机是64bit的是去掉 -m64, 32bit 去掉-m32
make
make install
- shared 库
(1). /config shared --prefix=/home/gaowei/openssl no-asm
如果直接在上一个交叉编译shared库,会出现不支持的提示而自己动使用 no-shared参才替换
(2). vi Makefile
remove -m64
对于pc机是64bit的是去掉 -m64, 32bit 去掉-m32, 定义在这些CFLAGS & LIB_LDFLAGS中的
- 这里就是一个偷梁换柱的过程, 把PC上用的gcc 换成arm-linux-gnueabihf-gcc, 换成交叉工具链就可以了.
CROSS_COMPILE= /opt/arm-toolchan/bin
CC= $(CROSS_COMPILE)arm-linux-gnueabihf-gcc
AR=$(CROSS_COMPILE)arm-linux-gnueabihf-ar $(ARFLAGS) r
RANLIB= $(CROSS_COMPILE)arm-linux-gnueabihf-ranlib
MAKEDEPPROG= arm-linux-gnueabihf-gcc
- Complie and install OpenSSL
$ make
$ make install
参考:
https://shadowllife.wordpress.com/2018/05/03/how-to-cross-compile-openssl/