Jump to page: 1 2
Thread overview
Problem with ImportC example?
Jan 17, 2023
DLearner
Jan 17, 2023
Dennis
Jan 17, 2023
DLearner
Jan 17, 2023
bachmeier
Jan 17, 2023
DLearner
Jan 17, 2023
ryuukk_
Jan 17, 2023
DLearner
Jan 17, 2023
DLearner
Jan 17, 2023
Ali Çehreli
Jan 18, 2023
DLearner
Jan 18, 2023
Salih Dincer
Jan 18, 2023
DLearner
Jan 18, 2023
Ali Çehreli
Jan 18, 2023
bachmeier
Jan 18, 2023
bachmeier
Jan 18, 2023
zjh
Jan 18, 2023
zjh
January 17, 2023

This relates to the first example under 41.1 Quick Examples.

Stored as ex01.c, run as shown.

#include <stdio.h>
int main()
{
   printf("hello world\n");
   return 0;
}

Produced:


C:\Users\SoftDev\Documents\BDM\D\ImportC>dmd ex01.c
ex01.c(1): Error: C preprocessor directive `#include` is not supported
ex01.c(1): Error: no type for declarator before `#`
ex01.c(5): Error: no type for declarator before `return`
ex01.c(6): Error: no type for declarator before `}`
January 17, 2023

On Tuesday, 17 January 2023 at 11:16:25 UTC, DLearner wrote:

>

C:\Users\SoftDev\Documents\BDM\D\ImportC>dmd ex01.c
ex01.c(1): Error: C preprocessor directive `#include` is not supported
ex01.c(1): Error: no type for declarator before `#`
ex01.c(5): Error: no type for declarator before `return`
ex01.c(6): Error: no type for declarator before `}`

What is your dmd --version? I suspect you have a version where you still have to manually pre-process the .c file, instead of a more recent version which invokes the pre-processor itself.

January 17, 2023

On Tuesday, 17 January 2023 at 11:21:08 UTC, Dennis wrote:

>

On Tuesday, 17 January 2023 at 11:16:25 UTC, DLearner wrote:

>

C:\Users\SoftDev\Documents\BDM\D\ImportC>dmd ex01.c
ex01.c(1): Error: C preprocessor directive `#include` is not supported
ex01.c(1): Error: no type for declarator before `#`
ex01.c(5): Error: no type for declarator before `return`
ex01.c(6): Error: no type for declarator before `}`

What is your dmd --version? I suspect you have a version where you still have to manually pre-process the .c file, instead of a more recent version which invokes the pre-processor itself.

C:\Users\SoftDev>dmd --version
DMD32 D Compiler v2.100.2-dirty
Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved written by Walter Bright

January 17, 2023

On Tuesday, 17 January 2023 at 13:21:37 UTC, DLearner wrote:

>

On Tuesday, 17 January 2023 at 11:21:08 UTC, Dennis wrote:

>

On Tuesday, 17 January 2023 at 11:16:25 UTC, DLearner wrote:

>

C:\Users\SoftDev\Documents\BDM\D\ImportC>dmd ex01.c
ex01.c(1): Error: C preprocessor directive `#include` is not supported
ex01.c(1): Error: no type for declarator before `#`
ex01.c(5): Error: no type for declarator before `return`
ex01.c(6): Error: no type for declarator before `}`

What is your dmd --version? I suspect you have a version where you still have to manually pre-process the .c file, instead of a more recent version which invokes the pre-processor itself.

C:\Users\SoftDev>dmd --version
DMD32 D Compiler v2.100.2-dirty
Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved written by Walter Bright

You may want to use the nightly build if you're working with ImportC: https://github.com/dlang/dmd/releases/tag/nightly They're doing a lot of work with it.

January 17, 2023

On Tuesday, 17 January 2023 at 15:55:40 UTC, bachmeier wrote:

>

On Tuesday, 17 January 2023 at 13:21:37 UTC, DLearner wrote:

>

On Tuesday, 17 January 2023 at 11:21:08 UTC, Dennis wrote:

>

On Tuesday, 17 January 2023 at 11:16:25 UTC, DLearner wrote:

>

C:\Users\SoftDev\Documents\BDM\D\ImportC>dmd ex01.c
ex01.c(1): Error: C preprocessor directive `#include` is not supported
ex01.c(1): Error: no type for declarator before `#`
ex01.c(5): Error: no type for declarator before `return`
ex01.c(6): Error: no type for declarator before `}`

What is your dmd --version? I suspect you have a version where you still have to manually pre-process the .c file, instead of a more recent version which invokes the pre-processor itself.

C:\Users\SoftDev>dmd --version
DMD32 D Compiler v2.100.2-dirty
Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved written by Walter Bright

You may want to use the nightly build if you're working with ImportC: https://github.com/dlang/dmd/releases/tag/nightly They're doing a lot of work with it.

Downloaded latest dmd for windows from website:

C:\Users\SoftDev>dmd --version
DMD32 D Compiler v2.101.2-dirty
Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved written by Walter Bright

But trial still failed:

C:\Users\SoftDev\Documents\BDM\D\ImportC>dmd ex01.c
failed launching cl.exe /P /Zc:preprocessor /PD /nologo ex01.c /FIC:\D\dmd2\windows\bin\..\..\src\druntime\import\importc.h /Fiex01.i
Error: C preprocess command cl.exe failed for file ex01.c, exit status 1

January 17, 2023

On Tuesday, 17 January 2023 at 17:12:49 UTC, DLearner wrote:

>

On Tuesday, 17 January 2023 at 15:55:40 UTC, bachmeier wrote:

>

On Tuesday, 17 January 2023 at 13:21:37 UTC, DLearner wrote:

>

On Tuesday, 17 January 2023 at 11:21:08 UTC, Dennis wrote:

>

On Tuesday, 17 January 2023 at 11:16:25 UTC, DLearner wrote:

>

C:\Users\SoftDev\Documents\BDM\D\ImportC>dmd ex01.c
ex01.c(1): Error: C preprocessor directive `#include` is not supported
ex01.c(1): Error: no type for declarator before `#`
ex01.c(5): Error: no type for declarator before `return`
ex01.c(6): Error: no type for declarator before `}`

What is your dmd --version? I suspect you have a version where you still have to manually pre-process the .c file, instead of a more recent version which invokes the pre-processor itself.

C:\Users\SoftDev>dmd --version
DMD32 D Compiler v2.100.2-dirty
Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved written by Walter Bright

You may want to use the nightly build if you're working with ImportC: https://github.com/dlang/dmd/releases/tag/nightly They're doing a lot of work with it.

Downloaded latest dmd for windows from website:

C:\Users\SoftDev>dmd --version
DMD32 D Compiler v2.101.2-dirty
Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved written by Walter Bright

But trial still failed:

C:\Users\SoftDev\Documents\BDM\D\ImportC>dmd ex01.c
failed launching cl.exe /P /Zc:preprocessor /PD /nologo ex01.c /FIC:\D\dmd2\windows\bin\..\..\src\druntime\import\importc.h /Fiex01.i
Error: C preprocess command cl.exe failed for file ex01.c, exit status 1

It works for me

C:\Users\ryuukk\tmp>dmd -run ex01.c
hello world

Double check your visual studio installation, something is wrong with your install probably

January 17, 2023

On Tuesday, 17 January 2023 at 17:36:41 UTC, ryuukk_ wrote:

>

On Tuesday, 17 January 2023 at 17:12:49 UTC, DLearner wrote:

>

On Tuesday, 17 January 2023 at 15:55:40 UTC, bachmeier wrote:

>

On Tuesday, 17 January 2023 at 13:21:37 UTC, DLearner wrote:

>

On Tuesday, 17 January 2023 at 11:21:08 UTC, Dennis wrote:

>

On Tuesday, 17 January 2023 at 11:16:25 UTC, DLearner wrote:

>

C:\Users\SoftDev\Documents\BDM\D\ImportC>dmd ex01.c
ex01.c(1): Error: C preprocessor directive `#include` is not supported
ex01.c(1): Error: no type for declarator before `#`
ex01.c(5): Error: no type for declarator before `return`
ex01.c(6): Error: no type for declarator before `}`

What is your dmd --version? I suspect you have a version where you still have to manually pre-process the .c file, instead of a more recent version which invokes the pre-processor itself.

C:\Users\SoftDev>dmd --version
DMD32 D Compiler v2.100.2-dirty
Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved written by Walter Bright

You may want to use the nightly build if you're working with ImportC: https://github.com/dlang/dmd/releases/tag/nightly They're doing a lot of work with it.

Downloaded latest dmd for windows from website:

C:\Users\SoftDev>dmd --version
DMD32 D Compiler v2.101.2-dirty
Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved written by Walter Bright

But trial still failed:

C:\Users\SoftDev\Documents\BDM\D\ImportC>dmd ex01.c
failed launching cl.exe /P /Zc:preprocessor /PD /nologo ex01.c /FIC:\D\dmd2\windows\bin\..\..\src\druntime\import\importc.h /Fiex01.i
Error: C preprocess command cl.exe failed for file ex01.c, exit status 1

It works for me

C:\Users\ryuukk\tmp>dmd -run ex01.c
hello world

Double check your visual studio installation, something is wrong with your install probably

Tried twice - same result.

But VS installation is itself (IMO) not particularly intuitive.
Would it be possible either to cite known working VS installation options on DLang website, or produce Windows installation script that takes such options automatically?

January 17, 2023

On Tuesday, 17 January 2023 at 19:17:31 UTC, DLearner wrote:

>

On Tuesday, 17 January 2023 at 17:36:41 UTC, ryuukk_ wrote:

>

On Tuesday, 17 January 2023 at 17:12:49 UTC, DLearner wrote:

>

On Tuesday, 17 January 2023 at 15:55:40 UTC, bachmeier wrote:
[...]

Downloaded latest dmd for windows from website:

C:\Users\SoftDev>dmd --version
DMD32 D Compiler v2.101.2-dirty
Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved written by Walter Bright

But trial still failed:

C:\Users\SoftDev\Documents\BDM\D\ImportC>dmd ex01.c
failed launching cl.exe /P /Zc:preprocessor /PD /nologo ex01.c /FIC:\D\dmd2\windows\bin\..\..\src\druntime\import\importc.h /Fiex01.i
Error: C preprocess command cl.exe failed for file ex01.c, exit status 1

It works for me

C:\Users\ryuukk\tmp>dmd -run ex01.c
hello world

Double check your visual studio installation, something is wrong with your install probably

Tried twice - same result.

But VS installation is itself (IMO) not particularly intuitive.
Would it be possible either to cite known working VS installation options on DLang website, or produce Windows installation script that takes such options automatically?

FWIW, now tried a few standard D programs, work fine.
Suggesting VS is not the problem?

January 17, 2023
On 1/17/23 12:02, DLearner wrote:

>>>> C:\Users\SoftDev\Documents\BDM\D\ImportC>dmd ex01.c
>>>> failed launching cl.exe /P /Zc:preprocessor [...]

I don't use Windows for development but that error message makes me think cl.exe is not found to be executed.

dmd relies on system compiler programs for its ImportC feature. cl.exe seems to be the compiler. I think it is the compiler.

Can you run that program from the command line?

Internet makes me think Visual Studio does not install it by default. (?) You may have to select C++ (or C?) when installing. (?)

> FWIW, now tried a few standard D programs, work fine.
> Suggesting VS is not the problem?

Standard D programs don't need a C compiler; dmd is the D compiler. It needs a C compiler (to preprocess C sources) for ImportC.

Ali

January 18, 2023

On Tuesday, 17 January 2023 at 11:16:25 UTC, DLearner wrote:

With the latest version of 'dmd101.2',dmd a.c, I get:
C:\Windows Kits\10\Include\10.0.22000.0\ucrt\corecrt_wstdio.h|1208| Error: function a.__vswprintf_l redeclaration with different type
C:\Windows Kits\10\Include\10.0.22000.0\ucrt\corecrt_wstdio.h|1405| Error: function a.__swprintf_l redeclaration with different type

« First   ‹ Prev
1 2