2

我正在尝试使用 C 在 Android 上使用 OpenGL。我正在关注这个优秀的教程,但我碰壁了。

我在 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
4

1 回答 1

1

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

于 2009-10-18T10:56:28.700 回答