Floating point not loaded
Clemens
eriatarka84 at gmail.com
Sat Jun 19 09:33:51 PDT 2010
I have a stupid problem linking D with C. This is with D 1.062, haven't tried D2. So say I have two files:
------ cfmt.c --------
#include <string.h>
char* myfmt(double x)
{
static char buf[40];
sprintf(buf, "%f", x);
return buf;
}
------- test.d --------
extern(C) char* myfmt(double x);
void main()
{
myfmt(42.3);
}
---------------------------
and I compile and link them as follows:
> dmc -c cfmt.c
> dmd test.d cfmt.obj
> test.exe
I get the runtime error "Floating point not loaded". No exception or anything, the executable just terminates with that message on the terminal. I found a short paragraph about that runtime error on
http://www.digitalmars.com/ctg/runtime.html
but it wasn't too helpful; a quick grep showed me that _fltused occurs in both cfmt.obj and test.obj.
Anyone seen this before? What can I do? I'm pretty sure this used to work with an older version. The actual real-world use case is linking to Lua, which bombs out with the same message once you use the string concatenation operator with a numeric argument. I used the Lua binding from dsource which comes with a precompiled library, and just to be sure I then compiled my own version of Lua with dmc; to no avail.
Clemens
More information about the Digitalmars-d
mailing list