www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Help with GDC and/or DMD for Linux and Code::Blocks

reply Brendan O. <brenzie gmail.com> writes:
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?
Aug 29 2008
next sibling parent reply "Jarrett Billingsley" <kb3ctd2 yahoo.com> writes:
"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).
Aug 29 2008
parent Brendan O. <brenzie gmail.com> writes:
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).

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 :)
Aug 30 2008
prev sibling parent reply Brendan O. <brenzie gmail.com> writes:
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".
Aug 30 2008
parent Brendan <brenzie gmail.com> writes:
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.
Sep 03 2008