在Android上使用SDL:由于缺少“GLES_CM”而无法编译

时间:2009-10-15 21:51:02

标签: android linux gcc sdl

我正在尝试使用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

1 个答案:

答案 0 :(得分:1)

GLES_CM是OpenGL ES库的一部分。 如果您正在使用NDK - OpenGL仅在1.6版本中可用。