我正在尝试使用C在Android上使用OpenGL。我正在关注此excellent tutorial,但我已经碰壁了。
我在Linux Mint 7(Ubuntu 9.04分支)上使用ARM编译器(arm-none-linux-gnueabi-ld)。
我可以将已编译的二进制文件复制到Android模拟器中,它运行正常。但是当我自己尝试make
时,我收到以下错误:
knight666@Desktop-Linux ~/Android/Test $ make
( for f in src; do ( cd $f ; make all ) || exit 1 ; done )
make[1]: Map '/home/knight666/Android/Test/src' wordt binnengegaan
arm-none-linux-gnueabi-ld --entry=_start --dynamic-linker ../../system/bin/linker -nostdlib -rpath ../../system/lib -rpath ../../system/lib -L ../../system/lib -lm -lc -lui -lGLES_CM main.o start.o -o ../test1
arm-none-linux-gnueabi-ld: cannot find -lGLES_CM
make[1]: *** [test1] Fout 1
make[1]: Map '/home/knight666/Android/Test/src' wordt verlaten
make: *** [all] Fout 1
它抱怨它找不到“GLES_CM”。我不知道那是什么,我在哪里可以找到它。谷歌搜索出现空白。 arm-none-linux-gnueabi-ld
也没有手册页,我无法弄清-l
标志是什么或做了什么。
之前有没有人做过这种事情,或者你能帮我理解我做错了吗?
提前致谢。
P.S。这是我编写的一个小脚本,用于在Android模拟器中复制并运行已编译的二进制文件:
#!/bin/sh
FILEPATH=`dirname $1`
adb push $FILEPATH/$1 /system/sbin/$1
adb shell chmod 777 /system/sbin/$1
adb shell /system/sbin/$1
答案 0 :(得分:1)
GLES_CM是OpenGL ES库的一部分。 如果您正在使用NDK - OpenGL仅在1.6版本中可用。