std.boxer broken?
Kyle Furlong
kylefurlong at gmail.com
Fri Apr 14 06:40:44 PDT 2006
David L. Davis wrote:
> In article <e1nc14$1gb5$1 at digitaldaemon.com>, Daniel Keep says...
>>
>> Oh, look--it's me and something's not working again :P
>>
>> Ok, I'm using dmd 0.153 and the included phobos. When I try to compile
>> the following:
>>
>> import std.boxer;
>> import std.stdio;
>>
>> int main()
>> {
>> Box x = box(42);
>> writefln("The answer to life, the universe, "
>> "and everything is: %d", unbox!(int)(x));
>>
>> return 0;
>> }
>>
>> I get the following error message:
>>
>> e:\Bin\Bin\link.exe boxtest,,,user32+kernel32/noi;
>> OPTLINK (R) for Win32 Release 7.50B1
>> Copyright (C) Digital Mars 1989 - 2001 All Rights Reserved
>>
>> boxtest.obj(boxtest)
>> Error 42: Symbol Undefined _assert_3std5boxer
>> --- errorlevel 1
>>
>> Anyone have any idea what I stuffed up? Other stuff, including
>> writefln, seems to work fine (well, apart from MinTL but we've already
>> covered that one), so I'm fairly sure it's linking in phobos.lib properly.
>>
>> Any advice would be greatly appreciated.
>>
>> -- Daniel.
>
> Daniel, adding the "extern (C) void assert_3std5boxer() { }" line below which
> Burton shared with us many moons ago will also work (without the need for
> -release switch) and you can add unittests as well.
>
> # // daniel1.d - tested with WinXP SP1 D v0.154
> # // Unittest: dmd daniel1.d -unittest
> # // Compile : dmd daniel1.d
> #
> # private import std.boxer;
> # private import std.stdio;
> #
> # // Burton Radons <burton-radons[at]smocky[dot]com>
> # // This entry allows -unittest for testing, and/or no need
> # // for the -release switch
> # extern (C) void assert_3std5boxer() { }
> #
> # int main()
> # {
> # Box x = box(42);
> # writefln("The answer to life, the universe, "
> # "and everything is: %d", unbox!(int)(x));
> #
> # return 0;
> # }
> #
> # unittest
> # {
> # Box x = box(42);
> # assert(42 == unbox!(int)(x));
> # writefln("unittest done.");
> # }
>
> Output:
> ------------
> C:\dmd>dmd daniel1.d
> C:\dmd\bin\..\..\dm\bin\link.exe daniel1,,,user32+kernel32/noi;
>
> C:\dmd>daniel1
> The answer to life, the universe, and everything is: 42
>
> C:\dmd>
>
>
> David L.
>
> -------------------------------------------------------------------
> "Dare to reach for the Stars...Dare to Dream, Build, and Achieve!"
> -------------------------------------------------------------------
>
> MKoD: http://spottedtiger.tripod.com/D_Language/D_Main_XP.html
Thats really not the right solution though. Thats a hack to replace the symbol with an empty function. What is needed is a debug
build of phobos with the right function.
More information about the Digitalmars-d
mailing list