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 and here is the library: $ ls /usr/lib/libX11* /usr/lib/libX11.so /usr/lib/libX11.so.6 /usr/lib/libX11.so.6.2.0 These are cut and pasted from the terminal window just as they appeared. I was sure I had already tried this, but I wanted to make sure I didn't miss it by mistake. And to help you guys understand how perplexing this is. I'll wait for some more responses to see if there is a better solution. I have really been spoiled by Sun's developer environment. Kudos to those guys. Now I know that GCC used to work a long time ago, and quite easily, so it is something in my setup. I also know that in the SUN environment I had LD_LIBRARY_PATH set in the environment, which is not set here, and I saw where someone said that was not required and in fact not good practice, and the GCC documentation talks about a file in the lib path that sets the default search, but I cannot find that file, either, and that may be the problem. But I am not sure the documentation is up to date, and since an earlier program compiled correctly in Eclipse, but it was not a X program, and since the missing library references appear to all be to the X platform libraries, I think you and Peter are on the right track, but I am still snowed. Do any of you know how make and gcc get the path to the libraries? Regards, Les H