Q: I do everything like your praised FAQ says, but the linker
complains about unresolved symbols with strange names like
djgpp_last_dtor, etc. I looked in every
nm, and I cannot find these creatures. Where in the
world are they??
A: These symbols are defined by the
djgpp.djl linker script
that should be in your
lib/ subdirectory. When you call
gcc to link a program, it invokes
ld.exe with the option
-T djgpp.djl. If you invoke
ld directly (this is generally
not recommended), be sure to include that switch. If you did invoke it
gcc, maybe your linker is set up incorrectly. Add
-v to the GCC switches and check that the command line that GCC
gives to LD includes that switch, that your
includes that script file, and that the script file is intact and
includes the definition of the above symbols.
Another reason might be that you have edited your
in a way that prevents the linker from finding its
Mixing an old v1.x installation with a v2.x one can also cause such problems. Be sure to delete the entire v1.x tree, or rename it, before installing the v2.x distribution.