Thread overview
Help with GDC and/or DMD for Linux and Code::Blocks
Aug 29, 2008
Brendan O.
Aug 30, 2008
Brendan O.
Aug 30, 2008
Brendan O.
Sep 03, 2008
Brendan
August 29, 2008
On my Linux machine, I installed gdc through a package manager and it works perfectly with Code::Blocks without hassle. In the terminal, here's what I got when doing 'gdc --version':

*******
gdc (GCC) 4.2.3 20080225 (prerelease gdc 0.25 20071215, using dmd 1.022) (Ubuntu 0.25-4.2.3-2ubuntu2)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*******

Obviously dmd 1.022 is old. Is it possible to have gdc use dmd 1.034?

Or, even better, how exactly do I get C::B to work with my current dmd 1.030? And how do I update to 1.034?

Or, even more better, is there a DEB package that easily installs dmd 1.034 for me, after which C::B easily detects it?
August 29, 2008
"Brendan O." <brenzie@gmail.com> wrote in message news:g99n89$2r14$1@digitalmars.com...
> On my Linux machine, I installed gdc through a package manager and it works perfectly with Code::Blocks without hassle. In the terminal, here's what I got when doing 'gdc --version':
>
> *******
> gdc (GCC) 4.2.3 20080225 (prerelease gdc 0.25 20071215, using dmd 1.022)
> (Ubuntu 0.25-4.2.3-2ubuntu2)
> Copyright (C) 2007 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.  There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
> PURPOSE.
> *******
>
> Obviously dmd 1.022 is old. Is it possible to have gdc use dmd 1.034?
>
> Or, even better, how exactly do I get C::B to work with my current dmd 1.030? And how do I update to 1.034?
>
> Or, even more better, is there a DEB package that easily installs dmd 1.034 for me, after which C::B easily detects it?

GDC has not been officially updated in around a year.  What is in the trunk of the GDC source repository I believe is fairly up-to-date, somewhere nearer to 1.033 or 1.034.  But I have not had any experience installing a more up-to-date version of it as everything I've done has worked fine with 0.24 (based on DMD 1.020).


August 30, 2008
Jarrett Billingsley Wrote:

> "Brendan O." <brenzie@gmail.com> wrote in message news:g99n89$2r14$1@digitalmars.com...
> > On my Linux machine, I installed gdc through a package manager and it works perfectly with Code::Blocks without hassle. In the terminal, here's what I got when doing 'gdc --version':
> >
> > *******
> > gdc (GCC) 4.2.3 20080225 (prerelease gdc 0.25 20071215, using dmd 1.022)
> > (Ubuntu 0.25-4.2.3-2ubuntu2)
> > Copyright (C) 2007 Free Software Foundation, Inc.
> > This is free software; see the source for copying conditions.  There is NO
> > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
> > PURPOSE.
> > *******
> >
> > Obviously dmd 1.022 is old. Is it possible to have gdc use dmd 1.034?
> >
> > Or, even better, how exactly do I get C::B to work with my current dmd 1.030? And how do I update to 1.034?
> >
> > Or, even more better, is there a DEB package that easily installs dmd 1.034 for me, after which C::B easily detects it?
> 
> GDC has not been officially updated in around a year.  What is in the trunk of the GDC source repository I believe is fairly up-to-date, somewhere nearer to 1.033 or 1.034.  But I have not had any experience installing a more up-to-date version of it as everything I've done has worked fine with 0.24 (based on DMD 1.020).
> 
> 
Then I guess I'll have to use DMD instead of GDC. I've not had much luck before getting it to work with a manual installation, even though I followed the instructions on the site to the letter. I had to work around it a bit, and then it just didn't work as expected.

Suppose I have a .deb file of an older DMD and install it, how do I update it manually to 1.034? Do I just replace the DMD executable and libphobos.a or is this foolish thinking?

On another note, another question: is anyone maintaining fresh .deb files at all for DMD? I don't know how it works, but I'd be willing to learn to put together a .deb for every new version and send it along so it can be put on the site. This way, frustration to newcomers can be spared. If it works out, consider it my contribution to D :)
August 30, 2008
I noticed that compiling a simple program with DMD for testing doesn't work. The message I get:

***
object.d: module object cannot read file 'object.d'
***

I looked for object.d and found it, and set up the compiler inside C::B to locate it, though it looked like it should already see it. Okay, I tested the simple program you get when you start a D project. Seems to finally have some results. I changed it to a simple "hello D", and I get errors:

***
/usr/include/d/4.2.3/std/c/stdio.d|240|Error: identifier 'gcc.config.libc.fpos_t' is not defined|
/usr/include/d/4.2.3/std/c/stdio.d|275|Error: identifier 'gcc.config.libc.fpos_t' is not defined|
/usr/include/d/4.2.3/std/c/stdio.d|275|Error: gcc.config.libc.fpos_t is used as a type|
/usr/include/d/4.2.3/std/c/stdio.d|276|Error: identifier 'gcc.config.libc.fpos_t' is not defined|
/usr/include/d/4.2.3/std/c/stdio.d|276|Error: gcc.config.libc.fpos_t is used as a type|
/usr/include/d/4.2.3/std/c/stdlib.d|127|module config cannot read file 'gcc/config/config.d'|
||=== Build finished: 6 errors, 0 warnings ===|
***

At this point, I'm tempted to write "goodbye D" or maybe, God forbid, "hello, again, Windows... long time no see".
September 03, 2008
Brendan O. wrote:
> I noticed that compiling a simple program with DMD for testing doesn't work. The message I get:
> 
> ***
> object.d: module object cannot read file 'object.d'
> ***
> 
> I looked for object.d and found it, and set up the compiler inside C::B to locate it, though it looked like it should already see it. Okay, I tested the simple program you get when you start a D project. Seems to finally have some results. I changed it to a simple "hello D", and I get errors:
> 
> ***
> /usr/include/d/4.2.3/std/c/stdio.d|240|Error: identifier 'gcc.config.libc.fpos_t' is not defined|
> /usr/include/d/4.2.3/std/c/stdio.d|275|Error: identifier 'gcc.config.libc.fpos_t' is not defined|
> /usr/include/d/4.2.3/std/c/stdio.d|275|Error: gcc.config.libc.fpos_t is used as a type|
> /usr/include/d/4.2.3/std/c/stdio.d|276|Error: identifier 'gcc.config.libc.fpos_t' is not defined|
> /usr/include/d/4.2.3/std/c/stdio.d|276|Error: gcc.config.libc.fpos_t is used as a type|
> /usr/include/d/4.2.3/std/c/stdlib.d|127|module config cannot read file 'gcc/config/config.d'|
> ||=== Build finished: 6 errors, 0 warnings ===|
> ***
> 
> At this point, I'm tempted to write "goodbye D" or maybe, God forbid, "hello, again, Windows... long time no see".

Okay. I've got DMD 2.xxx running perfectly from the command line (or at least I think so, as I tested it successfully with a simple program, and  the version is shown correctly, and so on).

Now it's only about getting Code Blocks to recognize it. What I get there is:

   "practiceD - Debug" uses an invalid compiler. Skipping...
   Nothing to be done.

Well, that certainly looks ugly to me. Doesn't it look ugly to you too? :P If you're sitting at a computer, and you press that button, whereafter you see that message, it doesn't just look ugly, it also FEELS ugly. It's like... "Arrrrgh! What the hell's the problem now???!!"

So can anyone please help?

If it's of any help, the executable 'dmd' is in /usr/local/bin, and I have 'libphobos.a' in /usr/lib, and 'libphobos2.a' in /usr/local/lib.