我在android中构建一个示例本机应用程序,当我使用ndk -bild编译时,我得到了一个链接问题。我得到了以下错误
arm-linux-androideabi-gcc -c -O2 -w -ansi -D_POSIX_SOURCE -I. -I../bozorth/include - I./include/ "-D __MSYS__" "-D__NBISLE__" src/BiomServerComponent.c -o src/BiomServerComponent.o
In file included from src/BiomServerComponent.c:1:0:
f:\android-ndk-r8b\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\../lib/gcc/arm-linux-androideabi/4.6.x-google/include-fixed/stdio.h:50:23: fatal error: sys/cdefs.h: No such file or directory
compilation terminated.
Makefile:25: recipe for target `src/BiomServerComponent.o' failed
我没有找到sys / cdefs.h或sys / _types.h,但是我在以下路径中找到了stdio.h
F:\android-ndk-r8b\platforms\android-9\arch-arm\usr\include
任何人都知道,如何链接这个标准头文件,
答案 0 :(得分:1)
从表面上看,您的澄清似乎是您正在尝试#include NDK不支持的头文件;请记住,NDK不能提供100%覆盖您通常希望在编译器中找到的内容。
如果您直接包含这些文件,则应该包括<sys/types.h>
。
答案 1 :(得分:0)
我找到了答案。确保正确设置 - sysroot 标志。否则,ndk将默认为目录 toolchains \ arm-linux-androideabi-4.6 \ prebuilt \ windows \ lib \ gcc \ arm-linux-androideabi \ 4.6.x-google \ include-fixed 目录无法在 platforms \ android-9 \ arch-arm \ usr \ include 中找到目录后。我遇到了同样的问题。
答案 2 :(得分:-2)
编辑:最新的问题修订:
真正的问题是 - 当编译器真正位于toolchains\arm-linux-androideabi-4.6\prebuilt\windows\lib\gcc\arm-linux-androideabi\4.6.x-google\include-fixed
时,为什么编译器会在platforms\android-9\arch-arm\usr\include
下查找头文件?在哪里有流氓-I选项? OP遇到问题的include
下的toolchains
文件夹看起来很残缺;它可能是GCC发行版的一件神器。真正的NDK头文件夹在其他地方。