digitalmars.D.learn - Problem with ImportC example?
- DLearner (19/19) Jan 17 2023 This relates to the first example under 41.1 Quick Examples.
- Dennis (4/12) Jan 17 2023 What is your `dmd --version`? I suspect you have a version where
- DLearner (7/21) Jan 17 2023 ```
- bachmeier (4/26) Jan 17 2023 You may want to use the nightly build if you're working with
- DLearner (17/45) Jan 17 2023 Downloaded latest dmd for windows from website:
- ryuukk_ (8/54) Jan 17 2023 It works for me
- DLearner (6/64) Jan 17 2023 Tried twice - same result.
- DLearner (4/43) Jan 17 2023 FWIW, now tried a few standard D programs, work fine.
- =?UTF-8?Q?Ali_=c3=87ehreli?= (11/15) Jan 17 2023 I don't use Windows for development but that error message makes me
- DLearner (8/11) Jan 18 2023 Fails with:
- Salih Dincer (4/18) Jan 18 2023 You will run the cl.exe, not the c1.exe
- DLearner (10/30) Jan 18 2023 Unfortunately, neither works:
- =?UTF-8?Q?Ali_=c3=87ehreli?= (4/9) Jan 18 2023 That supports the theory that you don't have a C compiler installed that...
- zjh (8/8) Jan 17 2023 On Tuesday, 17 January 2023 at 11:16:25 UTC, DLearner wrote:
- zjh (5/5) Jan 17 2023 On Wednesday, 18 January 2023 at 02:05:34 UTC, zjh wrote:
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(5): Error: no type for declarator before `return` ex01.c(6): Error: no type for declarator before `}` ```
Jan 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(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.
Jan 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>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 `````` C:\Users\SoftDev\Documents\BDM\D\ImportC>dmd ex01.c ex01.c(1): Error: C preprocessor directive `#include` is not supported 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.
Jan 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: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.On Tuesday, 17 January 2023 at 11:16:25 UTC, DLearner wrote:``` 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 `````` C:\Users\SoftDev\Documents\BDM\D\ImportC>dmd ex01.c ex01.c(1): Error: C preprocessor directive `#include` is not supported 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.
Jan 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: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 ```On Tuesday, 17 January 2023 at 11:21:08 UTC, Dennis wrote: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.On Tuesday, 17 January 2023 at 11:16:25 UTC, DLearner wrote:``` 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 `````` C:\Users\SoftDev\Documents\BDM\D\ImportC>dmd ex01.c ex01.c(1): Error: C preprocessor directive `#include` is not supported 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.
Jan 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: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 probablyOn Tuesday, 17 January 2023 at 13:21:37 UTC, DLearner 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 ```On Tuesday, 17 January 2023 at 11:21:08 UTC, Dennis wrote: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.On Tuesday, 17 January 2023 at 11:16:25 UTC, DLearner wrote:``` 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 `````` C:\Users\SoftDev\Documents\BDM\D\ImportC>dmd ex01.c ex01.c(1): Error: C preprocessor directive `#include` is not supported 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.
Jan 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: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?On Tuesday, 17 January 2023 at 15:55:40 UTC, bachmeier wrote: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 probablyOn Tuesday, 17 January 2023 at 13:21:37 UTC, DLearner 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 ```On Tuesday, 17 January 2023 at 11:21:08 UTC, Dennis wrote: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.On Tuesday, 17 January 2023 at 11:16:25 UTC, DLearner wrote:``` 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 `````` C:\Users\SoftDev\Documents\BDM\D\ImportC>dmd ex01.c ex01.c(1): Error: C preprocessor directive `#include` is not supported 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.
Jan 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:FWIW, now tried a few standard D programs, work fine. Suggesting VS is not the problem?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?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
Jan 17 2023
On 1/17/23 12:02, DLearner wrote: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. (?)C:\Users\SoftDev\Documents\BDM\D\ImportC>dmd ex01.c failed launching cl.exe /P /Zc:preprocessor [...]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
Jan 17 2023
On Tuesday, 17 January 2023 at 22:11:46 UTC, Ali Çehreli wrote: [...]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?Fails with: ``` C:\Users\SoftDev>c1.exe 'c1.exe' is not recognized as an internal or external command, operable program or batch file. ```
Jan 18 2023
On Wednesday, 18 January 2023 at 13:45:04 UTC, DLearner wrote:On Tuesday, 17 January 2023 at 22:11:46 UTC, Ali Çehreli wrote: [...]You will run the cl.exe, not the c1.exe (be written with the letter l) SDB 79dmd 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?Fails with: ``` C:\Users\SoftDev>c1.exe 'c1.exe' is not recognized as an internal or external command, operable program or batch file. ```
Jan 18 2023
On Wednesday, 18 January 2023 at 14:18:58 UTC, Salih Dincer wrote:On Wednesday, 18 January 2023 at 13:45:04 UTC, DLearner wrote:Unfortunately, neither works: ``` C:\Users\SoftDev>cl.exe 'cl.exe' is not recognized as an internal or external command, operable program or batch file. C:\Users\SoftDev>c1.exe 'c1.exe' is not recognized as an internal or external command, operable program or batch file. ```On Tuesday, 17 January 2023 at 22:11:46 UTC, Ali Çehreli wrote: [...]You will run the cl.exe, not the c1.exe (be written with the letter l) SDB 79dmd 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?Fails with: ``` C:\Users\SoftDev>c1.exe 'c1.exe' is not recognized as an internal or external command, operable program or batch file. ```
Jan 18 2023
On 1/18/23 08:04, DLearner wrote:Unfortunately, neither works: ``` C:\Users\SoftDev>cl.exe 'cl.exe' is not recognized as an internal or external command, operable program or batch file.That supports the theory that you don't have a C compiler installed that dmd can use for preprocessing C files. Ali
Jan 18 2023
On Wednesday, 18 January 2023 at 16:37:17 UTC, Ali Çehreli wrote:On 1/18/23 08:04, DLearner wrote:The [documentation](https://dlang.org/spec/importc.html#auto-cpp) saysUnfortunately, neither works: ``` C:\Users\SoftDev>cl.exe 'cl.exe' is not recognized as an internal or external command, operable program or batch file.That supports the theory that you don't have a C compiler installed that dmd can use for preprocessing C files. AliWhen compiling for Windows with the -m32mscoff or the -m64 switch, cl.exe /P /Zc:preprocessor will be used as the preprocessor.It might be useful for someone to add more information. I would certainly have no idea what that means if I tried to use Windows.
Jan 18 2023
On Wednesday, 18 January 2023 at 16:51:27 UTC, bachmeier wrote:On Wednesday, 18 January 2023 at 16:37:17 UTC, Ali Çehreli wrote:Or perhaps stated better, I'd have no idea what I'm supposed to install or set up to get it to work.On 1/18/23 08:04, DLearner wrote:The [documentation](https://dlang.org/spec/importc.html#auto-cpp) saysUnfortunately, neither works: ``` C:\Users\SoftDev>cl.exe 'cl.exe' is not recognized as an internal or external command, operable program or batch file.That supports the theory that you don't have a C compiler installed that dmd can use for preprocessing C files. AliWhen compiling for Windows with the -m32mscoff or the -m64 switch, cl.exe /P /Zc:preprocessor will be used as the preprocessor.It might be useful for someone to add more information. I would certainly have no idea what that means if I tried to use Windows.
Jan 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
Jan 17 2023
On Wednesday, 18 January 2023 at 02:05:34 UTC, zjh wrote: < ... `nightly`: Unresolved external symbol `__va_start`, function `_fwprintf_`. link error.
Jan 17 2023