On Sun, 2005-08-14 at 20:26 -0700, John M. Gabriele wrote:
[john@localhost ~/dev/java/JOGL_Example]$ gij -cp
/usr/share/java/jogl.jar Test
Exception in thread "main" java.lang.UnsatisfiedLinkError: libjawt: file not
found
at java.lang.Runtime._load(java.lang.String, boolean)
(/usr/lib/libgcj.so.6.0.0)
For some reason gij doesn't know where libjawt.so is. I think fitzsim
and I have discussed, but I don't recall the result.
Try doing this before running your program. It should fix it:
$ export LD_LIBRARY_PATH=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre/lib/i386
Compiling to object works also:
gcj --classpath=/usr/share/java/jogl.jar -c Test.java
but trying to link that fails:
[john@localhost ~/dev/java/JOGL_Example]$ gcj
--classpath=/usr/share/java/jogl.jar --main=Test -o MyTest Test.o
Test.o(.text+0x1d): In function
`TestRenderer::init(net::java::games::jogl::GLDrawable*)':
Test.java: undefined reference to `net::java::games::jogl::GLDrawable::class$'
There are two solutions:
1. Compile your code with -findirect-dispatch.
This will replace symbolic references to the jogl code with runtime name
lookups.
or
2. Link with -ljogl.jar. This will link libjogl.jar.so to your program,
which should resolve all of the jogl symbols.
Good luck!
AG