Why GCC needs a dll image to compile my other dll?

john Stone profesor.fir@gmail.com
Sat Nov 4 18:19:00 GMT 2017

I got some dll project that i compile to dll (say it is a.dll) I also
got other dll project that i also compile to dll (say it is b.dll)
(both dlls calls each other)

I got one quite serious problem:

When i compile a.dll i need b.dll image to be present on disk,
otherwise it will not compile.. If i mistakenly delete both images im
in dark cyclic hell and i cant compile none of them (then, to resolve
it, i must comment outdependencies - compile - uncomment - compile -
etc.. which is very very annoying)

(and i may mistakenly delete both easily, i just need to call script
that compiles both a and b; when there is simple compile error in a
then it will be deleted, then call to compile b will not compile too,
and now b is also deleted and now i got real trouble)

The question is mainly:

Why GCC (i use gcc5/mingw) need those dll images at all - I know that
to compile dll i just need to build import section which just need dll
module name and symbol names provided, dll image should be not needed)
Can i 'off' this need for dll image and recompile projest without it ?
(also i dont want to use so called import libraries, as those are
almost the same as dll only a bit more burden to make it)
(additional: 3,. Is this cyclic hell wide known thing?, how to resolve
it? (i may add i dont want to add full dynamic linkn by GetProcAdress
i need static like liniking only without mentioned troubles)

(sorry for weak english)

More information about the Gcc-help mailing list