Simon Thum <[email protected]> writes: > Bill Crawford wrote: >> included on the command line at link time. Libtool sort of abstracts this, >> but >> to do so it needs to keep track of what those dependencies are, and does so >> by >> storing them in this .la file. > Thanks for the explanation. What baffles me is that AFAICT this > introduces a lot of names to the linker, which you hadn't in mind when > programming. So this practice is dangerous, because if you misspell > something it may still be satisfied as libnever-heard-or-seen.so > provides just your typo as a symbol, suppressing the proper error.
That's correct. However, the likelihood of such misspellings are fairly small as long as the shared objects use a reasonable naming convention. This is complicated by the traditional export-everything policy of unix toolchains, though. Although, in C/C++ such an error would also mean that the misspelling matched some header file as well. So when this happens I don't think the link-time match is your main problem :) On the other hand. I think it is a much bigger problem that two libraries may in fact export the same name. Now that really causes problems, as you may get a completely different function than you expected even though you spelled it correctly. Or, when the (load-time) dependency tree of libraries ends up pulling in mutually incompatible libraries (like when opera depended on on one version of libpng, and libqt depended on a different version). eirik _______________________________________________ xorg mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/xorg
