美文网首页
为Android编译openssl类库

为Android编译openssl类库

作者: difcareer | 来源:发表于2017-02-04 20:03 被阅读428次

    本文参考了后面的参考文章对openssl进行编译,基本没有遇到什么问题,但是在使用使用编译的openssl时,遇到如下错误:

    ui_openssl.c:function read_string_inner: error: undefined reference to 'signal'
    

    遇到这个问题的人还挺多,有人说APP_PLATFORM :=android-21可以解决问题,试了一下果然,但是我想在4.x上也可以使用,经过一番搜索,这里说到了问题的关键,原来在api21之前,signal是inline方式的,21之后才不是inline。如下:

    // android-19
    
    /* the default is bsd */
    static __inline__ __sighandler_t signal(int s, __sighandler_t f)
    {
        return bsd_signal(s,f);
    }
    
    
    //android-21
    extern sighandler_t signal(int, sighandler_t);
    

    找到了原因,那么解决办法就是,将openssl使用低版本的api方式编译,这样就会使用inline方式,后续再引用时,不会再进行链接。

    参考文章:
    官方wiki
    编译Android的OpenSSL类库

    相关文章

      网友评论

          本文标题:为Android编译openssl类库

          本文链接:https://www.haomeiwen.com/subject/wchsittx.html