在 Android 上使用 SDL:由于缺少“GLES_CM”而无法编译
我正在尝试使用 C 在 Android 上使用 OpenGL。我正在遵循这个 优秀教程< /a>,但我碰壁了。
我在 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
标志是什么或做什么。
以前有人做过这样的事情吗?或者你能帮助我理解我做错了什么吗?
提前致谢。
PS 这是我编写的一个小脚本,用于在 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
I'm trying to use OpenGL on Android using C. I'm following this excellent tutorial, but I've hit a wall.
I'm using an ARM compiler (arm-none-linux-gnueabi-ld) on Linux Mint 7 (Ubuntu 9.04 branch).
I can copy the compiled binary to the Android emulator just fine, it runs. But when I try to make
it myself, I get the following error:
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
It complains it can't find "GLES_CM". I'm at a loss as to what that is and where I can find it. A Google search comes up empty. There is also no man page for arm-none-linux-gnueabi-ld
and I can't figure out what the -l
flag is or does.
Has anyone done this kind of thing before or can you help me understand what I'm doing wrong?
Thanks in advance.
P.s. here's a small script I wrote to copy and run a compiled binary in the Android emulator:
#!/bin/sh
FILEPATH=`dirname $1`
adb push $FILEPATH/$1 /system/sbin/$1
adb shell chmod 777 /system/sbin/$1
adb shell /system/sbin/$1
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
GLES_CM 是 OpenGL ES 库的一部分。
如果您使用 NDK - OpenGL 仅在 1.6 版本中可用。
GLES_CM is part of OpenGL ES libraries.
If you are working with NDK - OpenGL became available only in 1.6 builds.