我正在尝试构建一个 C++ 文件,以便通过 JNI 在我的 Android 应用程序中使用。我正在使用 Cygwin 在 Windows 中构建。我对此完全陌生,不知道自己在做什么。
这是输出的一部分:
$ g++ -c test_wrap.cxx -I"C:\dev\android-ndk-r4b\build\platforms\android-4\arch-arm\usr\include" -I./include
In file included from C:/dev/android-ndk-r4b/build/platforms/android-4/arch-arm/usr/include/sys/_types.h:40,
from C:/dev/android-ndk-r4b/build/platforms/android-4/arch-arm/usr/include/stdint.h:32,
from C:/dev/android-ndk-r4b/build/platforms/android-4/arch-arm/usr/include/sys/types.h:34,
from C:/dev/android-ndk-r4b/build/platforms/android-4/arch-arm/usr/include/strings.h:42,
from C:/dev/android-ndk-r4b/build/platforms/android-4/arch-arm/usr/include/stdlib.h:42,
from test_wrap.cxx:160:
C:/dev/android-ndk-r4b/build/platforms/android-4/arch-arm/usr/include/machine/_types.h:44: error: conflicting declaration 'typedef long unsigned int size_t'/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/stddef.h:213: error: 'size_t' has a previous declaration as `typedef unsigned int size_t'
C:/dev/android-ndk-r4b/build/platforms/android-4/arch-arm/usr/include/machine/_types.h:44: error: declaration of `typedef long unsigned int size_t'/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/stddef.h:213: error: conflicts with previous declaration `typedef unsigned int size_t'
C:/dev/android-ndk-r4b/build/platforms/android-4/arch-arm/usr/include/machine/_types.h:44: error: declaration of `typedef long unsigned int size_t'/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/stddef.h:213: error: conflicts with previous declaration `typedef unsigned int size_t'
C:/dev/android-ndk-r4b/build/platforms/android-4/arch-arm/usr/include/machine/_types.h:46: error: conflicting declaration 'typedef long int ptrdiff_t'/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/stddef.h:151: error: 'ptrdiff_t' has a previous declaration as `typedef int ptrdiff_t'
C:/dev/android-ndk-r4b/build/platforms/android-4/arch-arm/usr/include/machine/_types.h:46: error: declaration of `typedef long int ptrdiff_t'/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/stddef.h:151: error: conflicts with previous declaration `typedef int ptrdiff_t'
C:/dev/android-ndk-r4b/build/platforms/android-4/arch-arm/usr/include/machine/_types.h:46: error: declaration of `typedef long int ptrdiff_t'/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/stddef.h:151: error: conflicts with previous declaration `typedef int ptrdiff_t'
你能帮我一下吗?
以马内利
最佳答案
在 Cygwin 中构建的应用程序环境假定应用程序将在 Windows 上执行,并且 Cygwin DLL 可用。正如 yock 所述,您需要设置一个针对 Android 操作系统的交叉编译器。
关于java - 使用 cygwin 为 JNI (Android NDK) 编译 C++ 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4337177/