David Cournapeau wrote: > Robert Kern wrote: >> Charles R Harris wrote: >>> I'm wondering if the static libraries could simply be compiled with the >>> -fPIC flag and linked with the program to produce the dynamic library. >>> The static libraries are just collections of *.o files, so I don't see >>> why that shouldn't work. >> I don't think there is a reason why it *wouldn't* work; it's just that one >> needs >> to do "gcc -shared" to make a .so and that flag also tells the linker to >> choose >> .so's over .a's for the libraries that get linked into the target .so. >> > Ok, I found it much faster than I expected: you should use the option > -Bdynamic of the *linker*, that is, for example: > > gcc -shared -o c_gaussd.mexglx c_gaussd.o mex_alloc.o > -L/usr/local/matlab/bin/glnx86 -L/usr/media/boulot/local/lib > -L/usr/lib/atlas -Wl,-Bstatic,-lem_full -llapack_atlas -latlas > -Wl,-Bdynamic,-lmx -lmex > > will build a shared "library" c_gaussd.mexglx from c_gaussd.o and > mex_alloc.o, statically link libem_full, lapack_atlas and atlas, and > dynamically everything else. This was working, as otherwise, matlab > would have picked up atlas symbols from its existing, already linked own > atlas, and not from the atlas installed on my system (which was crashing > matlab and was the reason why I went through this pain in the first place).
Thank you! That's good information to know. -- Robert Kern "I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth." -- Umberto Eco _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion