Create C header files from
MaxNaderer
maximilian.wallinger at gmail.com
Tue Feb 17 15:27:20 UTC 2026
On Monday, 16 February 2026 at 20:06:52 UTC, Lance Bachmeier
wrote:
> On Monday, 16 February 2026 at 20:04:36 UTC, Lance Bachmeier
> wrote:
>> On Monday, 16 February 2026 at 17:07:53 UTC, MaxNaderer wrote:
>>> Hello guys,
>>>
>>> so how do we generate C header files automatically for a
>>> library compiled with dmd, ldc
>>> in betterC. Like basic example below. I found the "-HC" flag
>>> which can be used to output C++ header files. Do I need to
>>> convert those manually to C?
>>>
>>> ```D
>>>
>>> export extern(C) {
>>>
>>> uint add(uint a, uint b) {
>>> return a + b;
>>> }
>>>
>>> }
>>
>> ```
>> dmd -c mycode.c -Hf=mycode.di
>> ```
>>
>> https://dlang.org/spec/importc.html#ctod
>>
>> If you want to output the function bodies as D code, add
>> `-inline`:
>>
>> ```
>> dmd -c mycode.c -inline -Hf=mycode.di
>> ```
>
> Oh sorry. I think you mean you are compiling D code to be
> called from C.
Thank you for your answer. Yes I am going the other way. I create
the lib in D and want to create a C header and other bindings. It
should be a lib usable from many other languages like raylib but
with the power of D!
I have looked into __traits and I guess i need to go this way.
The perfect way would be to get a XML or json from the functions
so that the bindings can be easily automated
More information about the Digitalmars-d-learn
mailing list