将C / C ++程序移植到Android中

时间:2010-07-07 19:58:30

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

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

所以我的问题是:

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

请帮帮我!感谢。

-Scott

2 个答案:

答案 0 :(得分:2)

您不能使用预先存在的* .so文件,因为它们需要针对Android进行编译。为了创建一个* .so for Android,你需要使用他们的NDK,它已经被设置为构建正确的格式,所以你不需要担心arm-none-linux-gnueabi或任何东西。如果您想使用Android上没有的库,您需要使用NDK自己构建它。我不得不用STL做这件事。

答案 1 :(得分:1)

请参阅以下内容:

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

这应该回答你一些疑问......