views:

415

answers:

1

Hi.

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
A: 

GLES_CM is part of OpenGL ES libraries. If you are working with NDK - OpenGL became available only in 1.6 builds.

Reflog
Actually, all I had to do was type "sudo make" and it compiled. ;)But thanks for your suggestion!
knight666