From: <jc...@fe...> - 2004-01-14 16:31:05
|
On Wednesday 14 January 2004 09:03, Rafael Laboissiere wrote: | * Jo=E3o Cardoso <jc...@fe...> [2004-01-14 01:32]: | > I don't agree, based on what I can see from the reported MacOSX | > error: | > | > g++ -bundle -bundle_loader /sw/bin/octave-2.1.50 -o | > plplot_octave.oct plplot_octave.o -L../../src/.libs -lplplotd | > -L/sw/lib/octave-2.1.50 -loctave -lcruft -loctinterp -framework | > vecLib -L/sw/lib -ldfftw | > | > This is the link cmd generated from mkoctfile. You can see no | > reference to libcsironn/csa anywhere. However, the linker tries to | > link with libcsironn/ csa: | > | > ld: warning can't open dynamic library: /sw/lib/libcsirocsa.0.dylib | > | > Where did the loader get that information, else if not from | > libplplot itself? Because libplplot was found: -L../../src/.libs | > -lplplotd | | Your analysis is apparently correct and I was probably wrong when I | stated that the MacOS X linker does not work recursively. | | However, I still do not understand waht is going on with the MacOS X | compilation. In Linux the line above reads: | | /usr/bin/g++ -shared -o plplot_octave.oct plplot_octave.o | -L../../src/.libs -lplplotd | | It is much simpler and uses the -shared flag to g++. It seems that | the "g++ -bundle" command on MacOS X needs more -L and -l options | than the Linux counterpart. This is because when making libplplot he is told where libcsiroxx are: gcc -shared pdfutils.lo plargs.lo plbox.lo plcont.lo plcore.lo ... -Wl,--rpath -Wl,/home/jcard/plplot/lib/csa/.libs=20 ... ../lib/csa/.libs/libcsirocsa.so=20 | > but libcsiroxx wasn't found. MacOSX fellows, if you add | > -L../../lib/csa/.libs and -L../../lib/nn/.libs to the above gcc cmd | > (issued in the bindings/plplot directory) doesn't the link succeed? | | In another message, Alan argued that just adding the -L flags may not | be enough and we should also add the -l flags. He is probably right. Again I don't agree. The error says clearly that ld is *trying* to link=20 with libsciroxx, but it can't be found; if its location is added to the=20 cmd line, it will be found. But this is mainly academic, now that Alan has decided what THE solution=20 is. Joao |