Le 28/01/2016 06:38, clipka a Ã©crit :
> Okay, folks -- I'm officially puzzled here.
> I've broken the Unix build process, but for the sake of my life can't
> figure out /how/. Here's the change by which I broke it:
> And here are the devastating results:
> Somehow it seems that the definitions in povmscpp.cpp (and other .cpp
> files in the ~/source/povms subdirectory) are no longer properly linked
> into ~/source/libpovray.a for /some/ reason.
> Someone help me out here. Plz.
Such error at link stage are usually due to:
* a failure to compile some code
* an ordering problem with multiple libraries on the linker command
Did you start with a clean environment ? Previously compiled files might
not have been recompiled and might miss a deep change of mapping.
If you moved some files, was the Makefile redone ?
About the ordering of libraries, when libA would need some part of libB,
libA must appears before libB. But if libB needs also some code of libA,
you got a problem of circular dependencies which can make it difficult
to solve: the linker will extract only the needed symbol from libA due
to the previous code (main or other *.o object) and get a list of needed
symbols. then it close forever libA and search libB to extract the still
needed symbols and might get more needed symbols too. rinse & repeat for
the next library until the end of the list.
Post a reply to this message