Hi everyone, I'm trying to resolve an UnsatisfiedLinkError with G++ when compiling a JNI binding. The binding was originally written *and verified* in C with 'gcc -std=gnu99'. I have tried modifying it slightly to be C++ and compiling with 'g++ -lstdc++' so I can easily interface with my desired C++ library. This builds without any problems, but upon running, I get the following error: Exception in thread "main" java.lang.UnsatisfiedLinkError: /home/chardson/chardson/parallelsurf/lib/libparallelsurf.so: /home/chardson/chardson/parallelsurf/lib/libparallelsurf.so: undefined symbol: __gcj_personality_v0 at java.lang.ClassLoader$NativeLibrary.load(Native Method) at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1750) at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1675) at java.lang.Runtime.loadLibrary0(Runtime.java:840) at java.lang.System.loadLibrary(System.java:1047) at parallelsurf.ParallelSURF.<clinit>(ParallelSURF.java:17) at testpsurf.<init>(testpsurf.java:11) at testpsurf.main(testpsurf.java:23) Originally I got __gxx_personality_v0 instead of gcj, but I included the pragma for java_exceptions noted commonly online. I have tried searching extensively for a solution, but have not been successful. This post from 2002 to gcc-help simply claims the solution is linking to libstdc++, but my error does not change: http://gcc.gnu.org/ml/gcc-help/2002-05/msg00286.html Please note that I compile my source with: g++ -Wall -g -lstdc++ -shared -O2 -c -fPIC -D_REENTRANT filename.cpp -I/usr/lib/jvm/java-6-openjdk/include/ and link with: ld --shared filename.o -o libfilename.so The header is of course created by 'javah -jni' Also note that nm lists the __gcj_personality_v0 as undefined, but ever other symbol has one of the following types: daTWA I was developing earlier on Ubuntu 10.04 but am now on a fresh copy of 10.10. My version of g++ is 4.4.5, ld is 2.20.51-system.20100908 Thanks sincerely for your help. This is driving me mad! Andrew