How to use ImportC?

bachmeier no at spam.net
Fri Mar 4 02:25:24 UTC 2022


On Friday, 4 March 2022 at 01:30:00 UTC, Leonardo wrote:
> Thanks but not worked here.
>
> ```
> [leonardo at leonardo-pc dimportc]$ dmd --version
> DMD64 D Compiler v2.098.1
>
> Copyright (C) 1999-2021 by The D Language Foundation, All 
> Rights Reserved written by Walter Bright
> [leonardo at leonardo-pc dimportc]$ ls
> foo.c  program.d
> [leonardo at leonardo-pc dimportc]$ cat foo.c
> double twice(double x) {
>   return 2.0*x;
> }
> [leonardo at leonardo-pc dimportc]$ cat program.d
> import foo;
> import std.stdio;
>
> void main() {
>   writeln(twice(6.8));
> }
>
> [leonardo at leonardo-pc dimportc]$ dmd program.d foo.c
> /usr/include/dlang/dmd/core/stdc/stdio.d(1256): Error: function 
> `core.stdc.stdio.vfprintf` `pragma(printf)` functions must be 
> `extern(C) int vfprintf([parameters...], const(char)*, va_list)`
> /usr/include/dlang/dmd/core/stdc/stdio.d(1259): Error: function 
> `core.stdc.stdio.vfscanf` `pragma(scanf)` functions must be 
> `extern(C) int vfscanf([parameters...], const(char)*, va_list)`
> /usr/include/dlang/dmd/core/stdc/stdio.d(1262): Error: function 
> `core.stdc.stdio.vsprintf` `pragma(printf)` functions must be 
> `extern(C) int vsprintf([parameters...], const(char)*, va_list)`
> /usr/include/dlang/dmd/core/stdc/stdio.d(1265): Error: function 
> `core.stdc.stdio.vsscanf` `pragma(scanf)` functions must be 
> `extern(C) int vsscanf([parameters...], const(char)*, va_list)`
> /usr/include/dlang/dmd/core/stdc/stdio.d(1268): Error: function 
> `core.stdc.stdio.vprintf` `pragma(printf)` functions must be 
> `extern(C) int vprintf([parameters...], const(char)*, va_list)`
> /usr/include/dlang/dmd/core/stdc/stdio.d(1271): Error: function 
> `core.stdc.stdio.vscanf` `pragma(scanf)` functions must be 
> `extern(C) int vscanf([parameters...], const(char)*, va_list)`
> /usr/include/dlang/dmd/core/stdc/stdio.d(1485): Error: function 
> `core.stdc.stdio.vsnprintf` `pragma(printf)` functions must be 
> `extern(C) int vsnprintf([parameters...], const(char)*, 
> va_list)`
>
> ```
They must have introduced a bug. Works for me with DMD 2.098.0 
and LDC 1.28.0. ImportC is under heavy development right now. 
Most of the 2.098.1 changelog was related to ImportC.


More information about the Digitalmars-d-learn mailing list