我在使用NDK为Android构建X11时遇到了问题。我用的是最新的NDK和机器人包装。我已经更新了droid包装器以处理我正在构建的大多数东西,但是它实际上只是增加了一堆编译器选项。我让它打印出它在下面使用的选项。我已经走得很远了,但是我遇到了一个问题--构建一些库:
CC AuDispose.lo
droid-debug(compile): /opt/android-ndk-r7/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc -DHAVE_CONFIG_H -I. -I./include -I/home/rmason/androix/usr/include -Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -fno-strict-aliasing -Wbad-function-cast -Wformat=2 -Wold-style-definition -Wdeclaration-after-statement -I/home/rmason/androix/usr/include -MT AuDispose.lo -MD -MP -MF .deps/AuDispose.Tpo -c AuDispose.c -fPIC -DPIC -o .libs/AuDispose.o -I/opt/android-ndk-r7/platforms/android-8/arch-arm/usr/include -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -DANDROID -DSK_RELEASE -DNDEBUG -UDEBUG -march=armv5te -mtune=xscale -msoft-float -mthumb-interwork -fpic -fno-exceptions -ffunction-sections -funwind-tables -fstack-protector -fmessage-length=0
In file included from /opt/android-ndk-r7/platforms/android-8/arch-arm/usr/include/stdlib.h:42,
from AuDispose.c:34:
/opt/android-ndk-r7/platforms/android-8/arch-arm/usr/include/strings.h:47: error: expected declaration specifiers or '...' before numeric constant
/opt/android-ndk-r7/platforms/android-8/arch-arm/usr/include/strings.h:47: error: conflicting types for 'memset'
AuDispose.c: In function 'XauDisposeAuth':
AuDispose.c:44: error: too many arguments to function 'memset'
make[1]: *** [AuDispose.lo] Error 1
make[1]: Leaving directory `/home/rmason/androix/lib/libXau'
make: *** [install] Error 2我看看字符串,h和第47行是这样的:
void bzero(void *, size_t);我见过其他人对这种类型的行有困难,因为size_t是错误的值。一些人通过用内核的定义替换size_t来修复它。我的猜测是,我所包含的事物的顺序正在破坏一些我真正需要的定义。
如果人们喜欢整个故事,这里有一个小小的背景:
我正在尝试使用稍微修改过的droid包装器构建仙女座 ]。我制作了一个脚本(在我的github中作为androix-buildscript)来构建整个系统。它检查了所有的东西,构建了所有的东西。现在,我得到了以下结果:
谢谢你抽出时间来看看这个。我真的很困惑。
发布于 2012-03-04 14:11:15
我通过注释显示错误的字符串.h行来完成生成。另外,我在AuDispose.c中使用memset,而不是bzero。
https://stackoverflow.com/questions/8564050
复制相似问题