Linker errors and how to catch them
jerro
a at a.com
Mon Feb 18 09:17:55 PST 2013
On Monday, 18 February 2013 at 16:47:00 UTC, Lubos Pintes wrote:
> I am playing with library dgui.
> In 2.060, everything built fine.
> One of library samples imports std.string. Perhaps the VisualD
> doesn't include necessary library?
> I updated the DMD as follows: I deleted the dmd2 from C:\D
> folder and replaced it with one I downloaded from dlang.org. Is
> this nonstandard in some way? I randomly tested/wrote short
> programs and they worked.
> I also issued the clean solution, but that didn't help.
I am assuming you are using the prebuilt libraries from one of
the rar files at http://code.google.com/p/dgui/downloads/list
(the .lib files in the lib folder in the rar file). The newest of
those files was uploaded in December 2011, so the most recent
version of DMD that could have been used to build the .lib files
is 2.057. The signature of std.string.format has changed in
2.061, so Phobos doesn't contain a function with mangled name
_D3std6string6formatFYAya any more, and because dgui.lib and
dgui_debug.lib use that function, you get a linker error.
To solve this problem you need to rebuild the files dgui.lib and
dgui_lib.lib with DMD 2.062 (using dgui_build_dbg.bat and
dgui_build_rel.bat). But because DGui hasn't been updated since
2011 AFAICS, it probably won't compile with dmd 2.062. You'll
probably need to fix a bunch of compiler errors inside DGui to be
able to use it with DMD 2.062.
More information about the Digitalmars-d-learn
mailing list