Generating .di header files from ImportC files
d007
d007 at gmail.com
Sat Nov 11 08:02:29 UTC 2023
On Monday, 23 October 2023 at 18:00:39 UTC, Walter Bright wrote:
> On 10/23/2023 9:08 AM, d007 wrote:
>> Error: unrecognized file extension h
>
> That's because recognizing h files caused Iain problems
> building gdc.
>
> To deal with:
>
> --- file.c ---
> #include "file.h"
> --------------
today I try use importC with libfuse3.
DMD64 D Compiler v2.106.0-beta.1
```sh
dmd -c fuse.c -Hf=fuse.di
fuse.c:1:10: fatal error: fuse3/fuse.h: No such file or directory
1 | #include "fuse3/fuse.h"
| ^~~~~~~~~~~~~~
compilation terminated.
Error: C preprocess command cpp failed for file fuse.c, exit
status 1
```
I am not sure how to pass c flags into dmd here, and I can not
find document about this.
try with:
```sh
clang -E $dir/fuse.c -o fuse.i -I./include -DFUSE_USE_VERSION=30
dmd -c fuse.i -Hf=fuse.di
/usr/include/x86_64-linux-gnu/bits/byteswap.h(34): Error: missing
comma or semicolon after declaration of `__uint16_t`, found
`__bswap_16` instead
/usr/include/x86_64-linux-gnu/bits/byteswap.h(41): Error: no type
for declarator before `}`
/usr/include/x86_64-linux-gnu/bits/byteswap.h(49): Error: missing
comma or semicolon after declaration of `__uint32_t`, found
`__bswap_32` instead
/usr/include/x86_64-linux-gnu/bits/byteswap.h(56): Error: no type
for declarator before `}`
/usr/include/x86_64-linux-gnu/bits/byteswap.h(69): Error: missing
comma or semicolon after declaration of `__inline`, found
`__uint64_t` instead
/usr/include/x86_64-linux-gnu/bits/byteswap.h(77): Error: no type
for declarator before `}`
/usr/include/x86_64-linux-gnu/bits/uintn-identity.h(33): Error:
missing comma or semicolon after declaration of `__uint16_t`,
found `__uint16_identity` instead
/usr/include/x86_64-linux-gnu/bits/uintn-identity.h(36): Error:
no type for declarator before `}`
/usr/include/x86_64-linux-gnu/bits/uintn-identity.h(39): Error:
missing comma or semicolon after declaration of `__uint32_t`,
found `__uint32_identity` instead
/usr/include/x86_64-linux-gnu/bits/uintn-identity.h(42): Error:
no type for declarator before `}`
/usr/include/x86_64-linux-gnu/bits/uintn-identity.h(45): Error:
missing comma or semicolon after declaration of `__uint64_t`,
found `__uint64_identity` instead
/usr/include/x86_64-linux-gnu/bits/uintn-identity.h(48): Error:
no type for declarator before `}`
/usr/include/x86_64-linux-gnu/sys/select.h(102): Error: found
`__readfds` when expecting `,`
/usr/include/x86_64-linux-gnu/sys/select.h(102): Error: no
type-specifier for parameter
/usr/include/x86_64-linux-gnu/sys/select.h(103): Error: found
`__writefds` when expecting `,`
/usr/include/x86_64-linux-gnu/sys/select.h(103): Error: no
type-specifier for parameter
/usr/include/x86_64-linux-gnu/sys/select.h(104): Error: found
`__exceptfds` when expecting `,`
/usr/include/x86_64-linux-gnu/sys/select.h(104): Error: no
type-specifier for parameter
/usr/include/x86_64-linux-gnu/sys/select.h(105): Error: found
`__timeout` when expecting `,`
/usr/include/x86_64-linux-gnu/sys/select.h(127): Error: found
`__readfds` when expecting `,`
```
I use debian 12 amd64.
More information about the Digitalmars-d
mailing list