如何编译swiften XMPP库以用于Android?

时间:2013-05-17 08:51:24

标签: android android-ndk xmpp swiften

我尝试将swiften(一个XMPP客户端库)编译为Android JNI的lib但是失败了。有没有人成功过?任何建议都将不胜感激。

我按照以下步骤编译了swiften:

  
      
  1. http://swift.im/git/swift/commit/?id=13a3f7812520d44e374d7c391daf2128335ac067
  2. 下载了swiften   
  3. 执行以下文档:http://swift.im/git/swift/commit/?h=sandbox/tobias/android&id=b8e69ea59b471e1aff9c8db06aceb7108db0657b
  4.   
  5. 因为我只需要swiften,所以我编译为:./ scons Swiften target = android toolchain = / home / XXX / toolchain
  6.   

然后我遇到了以下问题:

  
      
  1. 找不到cryptlib.c,所以我下载了openssl并修复了这个。
  2.   
  3. 找不到arpa / nameser_compat.h。然后我将这个头文件从/ usr / include复制到工具链,并在开头添加#define BSD 199307。
  4.   
  5. 找不到res_init(),res_query(),dn_expand(),dn_skipname()的声明。所以我添加了声明。
  6.   

最后我得到了尺寸为260M的libSwiften.a。并且大约有200个链接错误:

  AR Swiften/libSwiften.a
  RANLIB Swiften/libSwiften.a
  LINK Swiften/Examples/BenchTool/BenchTool
3rdParty/OpenSSL/openssl/crypto/objects/obj_dat.c:489: error: undefined reference to 'BUF_strlcpy'
3rdParty/OpenSSL/openssl/crypto/objects/obj_dat.c:579: error: undefined reference to 'BUF_strlcpy'
3rdParty/OpenSSL/openssl/crypto/objects/obj_dat.c:601: error: undefined reference to 'BUF_strlcpy'
3rdParty/OpenSSL/openssl/crypto/bio/bss_file.c:368: error: undefined reference to 'BUF_strlcpy'
3rdParty/OpenSSL/openssl/crypto/err/err.c:1104: error: undefined reference to 'BUF_strlcat'
3rdParty/OpenSSL/openssl/crypto/x509v3/v3_enum.c:94: error: undefined reference to 'BUF_strdup'
3rdParty/OpenSSL/openssl/crypto/x509v3/v3_purp.c:199: error: undefined reference to 'BUF_strdup'
3rdParty/OpenSSL/openssl/crypto/x509v3/v3_purp.c:200: error: undefined reference to 'BUF_strdup'
some more......

0 个答案:

没有答案