2008年10月8日星期三

嵌入式平台下openssl的裁剪方法

在嵌入式平台上,如果使用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把库的符号去掉,库会小一半,但是应用程序就会报告找不到函数的实现,还没有找到怎么解决它。

没有评论: