On Saturday, 2 March 2013 at 03:59:59 UTC, H. S. Teoh wrote:
On Sat, Mar 02, 2013 at 04:17:10AM +0100, Rob T wrote:
In my case, the problem had to do with the order in which I was
linking my static libs, simply changing the order resolved the
undefined references. Turns out it's a common problem when working
with static libs and it's unrelated to D.
[...]

It's the linker's fault, not any compiler's. Symbols are resolved according to the order of modules you specify on the command-line, so
order does matter, unfortunately.

IMNSHO this is a silly design -- in this day and age, one would've expected better algorithms than that for linking -- but that's how it is
right now.


T

Maybe 20 years ago there was not enough cpu power to go around, but not anymore, so one would think this kind of problem could easily be resolved. It seems though, that most often dynamically loaded libs are used, not static, so perhaps the problems with static libs are due to it being not enough of a priority. Personally I prefer dynamically loaded libs and as soon as D supports it I'll be using them again almost exclusively.

--rt

Reply via email to