在嵌入式平台上,如果使用openssl的标准方法,编译出来的libcrypto.a和libssl.a会比较大,分别是2M多和400多K,为了减少空间使用率,可以使用下面的命令去掉一下东西:
./config no-shared no-zlib no-asm no-dso no-threads no-comp no-gmp
no-krb5 no-rc5 no-zlib-dynamic no-hw no-cipher
创建出Makefile后,把gcc改成arm-elf-gcc,
把ranlib改成arm-elf-ranlib,这就可以生成比较小的libcrypto.a和libssl.a。
其 实也可以用./config no-shared no-zlib no-asm no-dso no-threads no-comp
no-gmp no-krb5 no-rc5 no-zlib-dynamic no-hw no-cipher
-os/compiler:arm-elf-gcc编译arm版本,但是这样产生的库比上述方法大,看了一下,好像是优化级别差异,一个是-O,一个是
O3
另外,如果用arm-elf-strip把库的符号去掉,库会小一半,但是应用程序就会报告找不到函数的实现,还没有找到怎么解决它。
在Android.mk文件中使用LOCAL_CFLAGS += -fvisibility=hidden选项,这个选项的作用是不导出函数符号表。可以缩小生成的库文件大小,相当于strip命令。
阅读(2286) | 评论(0) | 转发(0) |