【问题标题】:Porting a C/C++ program into Android将 C/C++ 程序移植到 Android
【发布时间】:2011-03-13 00:25:32
【问题描述】:

我正在尝试将我的 C++ 程序放到 Android 手机上,但在库链接方面遇到了几个问题。我通过 google 找到的关于这个主题的大部分有用信息似乎都已过时 (motz),或者根本不考虑我的程序的复杂性。我已经能够运行简单的 C 程序,但在尝试使用 Android 的 Bionic/libc 之外的库时失败。

所以我的问题是:

  • 是否可以将预先存在的 *.so 库移植到 Android 上?如果是这样,我怎么能在没有段错误的情况下做到这一点?
  • 我应该使用 CodeSourcery 编译器 (arm-none-linux-gnueabi-*) 吗?
  • 如何解决缺少单独的 pthread 库的问题?

请帮帮我!谢谢。

-斯科特

【问题讨论】:

    标签: android cross-platform shared-libraries native android-ndk


    【解决方案1】:

    您不能使用预先存在的 *.so 文件,因为它们需要针对 Android 进行编译。要为 Android 创建 *.so,您需要使用他们的 NDK,它已经设置为构建正确的格式,因此您无需担心 arm-none-linux-gnueabi 或任何东西。如果您想使用 Android 上不可用的库,您需要使用 NDK 自己构建它。我必须用 STL 来做这件事。

    【讨论】:

    • 谢谢。我正在为这些库创建 Android.mk 文件以允许它们与源代码一起编译(我有几个要包含的库)。对于任何感兴趣的人,androidcore.com 有一个很好的关于 Android.mk 文件的教程,它可以帮助我度过难关。
    • 令人惊讶的是,我现在也在做同样的事情 :) 另一篇不错的文章是 datasprings.com/Resources/ArticlesInformation/… 如果/当你找到调试 C 代码的方法时,请告诉我 :)
    【解决方案2】:

    请参考以下内容:

    Can i use the native libraries (installed in android stack) in my NDK application?

    这应该会回答您一些疑问...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-13
      • 1970-01-01
      • 2012-08-15
      • 1970-01-01
      • 2010-09-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多