我需要用 C++ 编写一个动态链接库,供 Java 在 Android 上使用。 据我了解,它应该是 .so 库,但我不知道该怎么做。 我试过 Cygwin,但它崩溃了:
$ gcc 1.cpp
/usr/lib/gcc/i686-pc-cygwin/4.3.4/../../../../i686-pc-cygwin/bin/ld: cannot find -luser32 collect2: ld returned 1 exit status
1.cpp:
int main(int, char**)
{
return 0;
}
有人可以帮我吗?
P.S.我不擅长*nix,所以最好在Windows下完成
UPD:我已经安装了 Android NDK 和 Cygwin 并将它们添加到 PATH 环境变量
UPD2:感谢您的帮助。问题出在 Cygwin 本身。重新安装它和 NDK 解决了问题。
最佳答案
对于您的示例,使用 g++ 而不是 gcc,它是一个 C++ 程序。
查看 NDK 中的 hello-jni 示例。您需要使用 NDK 构建共享库并将其导入到 Java Android 项目中。在Java代码中,您需要使用'native'声明本地函数并使用static添加库;请参阅下面的代码段。
public native String stringFromJNI();
static {
System.loadLibrary("hello-jni");
}
关于java - 如何在 Android 上创建原生 C++ 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3147382/