On Tue, 2007-06-19 at 16:47 -0700, Les wrote: > On Wed, 2007-06-20 at 00:36 +0300, Markku Kolkka wrote: > > Les kirjoitti viestissään (lähetysaika tiistai 19 kesäkuu 2007): > > > So just to prove that this didn't change anything I tried: > > > gcc -L X11 GuiExample.cpp > > > > The option is "-lX11", not "-L X11". Linux is case sensitive and > > spaces are also significant. > > > > > I am sorry, and this is probably clear to some of you, but I > > > am at a loss to understand why this doesn't work. If I use > > > gcc, the presence or absence of a library .a or .so shouldn't > > > matter since the compiler should create the link chain based > > > on the extern definition, which could be resolved at load > > > time. > > > > The extern definition doesn't tell which library contains the > > symbol, just the function prototype or variable declaration. > > _You_ must tell the compiler which libraries to link in order to > > resolve the references. > > > I wasn't aware that gcc had combined the linker with the precompiler and > compiler. OK. Here is the result with the lowercase l. This did not > appear to work either, so I tried it in several combinations: > > $ gcc -l/usr/lib/libX11.so GuiExample.cpp > /usr/bin/ld: cannot find -l/usr/lib/libX11.so > collect2: ld returned 1 exit status > $ gcc -l /usr/lib/libX11.so GuiExample.cpp > /usr/bin/ld: cannot find -l/usr/lib/libX11.so > collect2: ld returned 1 exit status > $ gcc -llibX11 GuiExample.cpp > /usr/bin/ld: cannot find -llibX11 > collect2: ld returned 1 exit status You want g++ GuiExample.cpp -lX11 Ralf