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

发布于 2024-08-07 17:50:27 字数 1296 浏览 4 评论 0原文

我正在尝试使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

满身野味 2024-08-14 17:50:27

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文