Thread overview
compile/link problems(real newbie question)
Nov 22, 2005
Munchgreeble
Nov 22, 2005
John C
Nov 22, 2005
Munchgreeble
Nov 23, 2005
Carlos Santander
Nov 23, 2005
Munchgreeble
Nov 24, 2005
Carlos Santander
Nov 24, 2005
John Reimer
Nov 24, 2005
Munchgreeble
Nov 24, 2005
Georg Wrede
November 22, 2005
Hi There,

I've tried quite a few different ways of getting my first D program to compile - I finally got it going on the command line (Cygwin), but Code::Blocks just doesn't want to play ball. I've tried looking on a couple of the different FAQs around, but none of them seem to answer basic questions about common compiler problems. I know I know, once I get this working I should go update the wiki so that the next poor soul who comes along can have some assistance. I will try to get around to that!

OK, so I'm on WinXP. My two current ways of attempting a build are in Code::Blocks with the D modified binary (as indicated here: http://www.prowiki.org/wiki4d/wiki.cgi?EditorSupport#CodeBlocks) and also from the commandline in Cygwin, using Vim (which now comes with D syntax highlighting as standard - hoorah). I've got past a few errors (working out what needed to be where for some of the hardcoded relative paths to work, complaints about corrupted libraries etc.) but I'm left with this in Code::Blocks and I'm stuck:

Project   : Console application
Compiler  : Digital Mars D Compiler (called directly)
Directory : C:\d-projects\first\
--------------------------------------------------------------------------------
Switching to target: default
Compiling: first.d
Linking console executable: C:\Documents and Settings\raf\My
Documents\d-projects\first\first.exe
link /nologo /delexe .objs\first.obj C:\dmd\lib\phobos.lib C:\dmd\lib\WS2_32.LIB
C:\dm\lib\snn.lib ,C:\Documents and Settings\raf\My
Documents\d-projects\first\first.exe,,C:\dmd\lib\\ C:\dm\lib\\ ,
OPTLINK (R) for Win32  Release 7.50B1
Copyright (C) Digital Mars 1989 - 2001  All Rights Reserved

C:\dmd\lib\phobos.lib(ti_delegate)  Offset 6DB0EH Record Type 0091
Error 1: Previous Definition Different : __init_10TypeInfo_D
C:\dmd\lib\phobos.lib(ti_delegate)  Offset 6DB28H Record Type 0091
Error 1: Previous Definition Different : __Class_10TypeInfo_D
C:\dmd\lib\phobos.lib(ti_delegate)  Offset 6DB41H Record Type 0091
Error 1: Previous Definition Different : __vtbl_10TypeInfo_D
C:\dmd\lib\phobos.lib(ti_creal)  Offset 6DFEBH Record Type 0091
Error 1: Previous Definition Different : __init_10TypeInfo_c
C:\dmd\lib\phobos.lib(ti_creal)  Offset 6E005H Record Type 0091
Error 1: Previous Definition Different : __Class_10TypeInfo_c
C:\dmd\lib\phobos.lib(ti_creal)  Offset 6E01EH Record Type 0091
Error 1: Previous Definition Different : __vtbl_10TypeInfo_c
C:\dmd\lib\phobos.lib(ti_idouble)  Offset 6FB20H Record Type 0091
Error 1: Previous Definition Different : __init_10TypeInfo_p
C:\dmd\lib\phobos.lib(ti_idouble)  Offset 6FB3AH Record Type 0091
Error 1: Previous Definition Different : __Class_10TypeInfo_p
C:\dmd\lib\phobos.lib(ti_idouble)  Offset 6FB53H Record Type 0091
Error 1: Previous Definition Different : __vtbl_10TypeInfo_p
C:\dmd\lib\phobos.lib(ti_Acreal)  Offset 76457H Record Type 0091
Error 1: Previous Definition Different : __init_11TypeInfo_Ac
C:\dmd\lib\phobos.lib(ti_Acreal)  Offset 76472H Record Type 0091
Error 1: Previous Definition Different : __Class_11TypeInfo_Ac
C:\dmd\lib\phobos.lib(ti_Acreal)  Offset 7648CH Record Type 0091
Error 1: Previous Definition Different : __vtbl_11TypeInfo_Ac
C:\dmd\lib\WS2_32.LIB Offset 01A95H Record Type 0088
Error 1: Previous Definition Different : _htonl@4
C:\dmd\lib\WS2_32.LIB Offset 01AC5H Record Type 0088
Error 1: Previous Definition Different : _htons@4
C:\dmd\lib\WS2_32.LIB Offset 01BB5H Record Type 0088
Error 1: Previous Definition Different : _ntohl@4
C:\dmd\lib\WS2_32.LIB Offset 01BE5H Record Type 0088
Error 1: Previous Definition Different : _ntohs@4
C:\dm\lib\snn.lib(_exit2)  Offset 00488H Record Type 00C3
Error 1: Previous Definition Different : __exit
C:\dm\lib\snn.lib(stream)  Offset 3D014H Record Type 00C3
Error 1: Previous Definition Different : ?WS@@YAAAVistream@@AAV1@@Z (istream
&cdecl WS(istream &))
C:\dm\lib\snn.lib(_wfopen)  Offset 7898FH Record Type 00C3
Error 1: Previous Definition Different : __WFOPEN
Settings\raf\My.lib
Warning 2: File Not Found Settings\raf\My.lib
Documents\d-projects\first\first.exe
Warning 2: File Not Found Documents\d-projects\first\first.exe
phobos.lib
Warning 2: File Not Found phobos.lib
stlp45dm_static.lib
Warning 2: File Not Found stlp45dm_static.lib
C:\dmd\lib\phobos.lib(com)
Error 42: Symbol Undefined _IID_IUnknown
C:\dmd\lib\phobos.lib(registry)
Error 42: Symbol Undefined _RegQueryValueExA@24
C:\dmd\lib\phobos.lib(registry)
Error 42: Symbol Undefined _RegCloseKey@4
C:\dmd\lib\phobos.lib(registry)
Error 42: Symbol Undefined _RegQueryInfoKeyA@48
C:\dmd\lib\phobos.lib(registry)
Error 42: Symbol Undefined _RegCreateKeyExA@36
C:\dmd\lib\phobos.lib(registry)
Error 42: Symbol Undefined _RegOpenKeyExA@20
C:\dmd\lib\phobos.lib(registry)
Error 42: Symbol Undefined _RegOpenKeyA@12
C:\dmd\lib\phobos.lib(registry)
Error 42: Symbol Undefined _RegDeleteKeyA@8
C:\dmd\lib\phobos.lib(registry)
Error 42: Symbol Undefined _RegSetValueExA@24
C:\dmd\lib\phobos.lib(registry)
Error 42: Symbol Undefined _RegDeleteValueA@8
C:\dmd\lib\phobos.lib(registry)
Error 42: Symbol Undefined _RegFlushKey@4
C:\dmd\lib\phobos.lib(registry)
Error 42: Symbol Undefined _RegEnumKeyExA@32
C:\dmd\lib\phobos.lib(registry)
Error 42: Symbol Undefined _RegEnumValueA@32
C:\dm\lib\snn.lib(winstart)
Error 42: Symbol Undefined _WinMain@16
C:\dm\lib\snn.lib(wconstar)
Error 42: Symbol Undefined _wmain
C:\dm\lib\snn.lib(wwinstar)
Error 42: Symbol Undefined _wWinMain@16
C:\dmd\lib\\Documents.res
Warning 2: File Not Found C:\dmd\lib\\Documents.res
C:\dm\lib\\Documents.res
Warning 2: File Not Found C:\dm\lib\\Documents.res
Process terminated with status 0 (0 minutes, 0 seconds)
35 errors, 0 warnings

Any ideas? I've checked the dmd.zip and dmc.zip archives are intact and they check out OK. I've also tried playing around with what libraries to link to, but that doesn't help. I'd quite like to get to use Code::Blocks, because though I love vi, I'm currently using an IDE for project work (Eclipse), and I just know my poor fingers will get confused if I keep switching between the two all the time!

Have I just completely missed the how to deal with libraries in code::blocks stuff or is it really obvious and I'm just being a clown? =)

Thanks in advance

Munch

PS It would be nice to use Eclipse for this, but I got a bit confused by all the different alternative plugins recommended/disrecommended on the main D newsgroup and the conflicting opinions about which ones were broken etc. If anybody has a definite answer on this and a link to go to to d/l the plugin, that would be great. Thanks!

PPS the successful build I get at the Cygwin command line looks very different when it executes (see below) - the link command is completely different to the one which Code::Blocks produces. I'm guessing this is something to do with the reason Code::Blocks isn't working?

$ dmd first.d
c:\dmd\bin\..\..\dm\bin\link.exe first,,,user32+kernel32/noi;


November 22, 2005
<Munchgreeble@bigfoot.com> wrote in message news:dltpg9$ps9$1@digitaldaemon.com...
> Hi There,
>
> I've tried quite a few different ways of getting my first D program to
> compile -
> I finally got it going on the command line (Cygwin), but Code::Blocks just
> doesn't want to play ball. I've tried looking on a couple of the different
> FAQs
> around, but none of them seem to answer basic questions about common
> compiler
> problems. I know I know, once I get this working I should go update the
> wiki so
> that the next poor soul who comes along can have some assistance. I will
> try to
> get around to that!
>
> OK, so I'm on WinXP. My two current ways of attempting a build are in
> Code::Blocks with the D modified binary (as indicated here:
> http://www.prowiki.org/wiki4d/wiki.cgi?EditorSupport#CodeBlocks) and also
> from
> the commandline in Cygwin, using Vim (which now comes with D syntax
> highlighting
> as standard - hoorah). I've got past a few errors (working out what needed
> to be
> where for some of the hardcoded relative paths to work, complaints about
> corrupted libraries etc.) but I'm left with this in Code::Blocks and I'm
> stuck:
>
> Project   : Console application
> Compiler  : Digital Mars D Compiler (called directly)
> Directory : C:\d-projects\first\
> --------------------------------------------------------------------------------
> Switching to target: default
> Compiling: first.d
> Linking console executable: C:\Documents and Settings\raf\My
> Documents\d-projects\first\first.exe
> link /nologo /delexe .objs\first.obj C:\dmd\lib\phobos.lib
> C:\dmd\lib\WS2_32.LIB
> C:\dm\lib\snn.lib ,C:\Documents and Settings\raf\My
> Documents\d-projects\first\first.exe,,C:\dmd\lib\\ C:\dm\lib\\ ,
> OPTLINK (R) for Win32  Release 7.50B1
> Copyright (C) Digital Mars 1989 - 2001  All Rights Reserved

I can see a couple of problems, probably unrelated to your IDE. File names with spaces are known to give the linker problems - try using a relative path instead or a DOS-style path. You might also need to link in kernel32.lib, user32.lib and uuid.lib.

Also, you don't have to link with phobos, as D does it automatically.

>
> C:\dmd\lib\phobos.lib(ti_delegate)  Offset 6DB0EH Record Type 0091
> Error 1: Previous Definition Different : __init_10TypeInfo_D
> C:\dmd\lib\phobos.lib(ti_delegate)  Offset 6DB28H Record Type 0091
> Error 1: Previous Definition Different : __Class_10TypeInfo_D
> C:\dmd\lib\phobos.lib(ti_delegate)  Offset 6DB41H Record Type 0091
> Error 1: Previous Definition Different : __vtbl_10TypeInfo_D
> C:\dmd\lib\phobos.lib(ti_creal)  Offset 6DFEBH Record Type 0091
> Error 1: Previous Definition Different : __init_10TypeInfo_c
> C:\dmd\lib\phobos.lib(ti_creal)  Offset 6E005H Record Type 0091
> Error 1: Previous Definition Different : __Class_10TypeInfo_c
> C:\dmd\lib\phobos.lib(ti_creal)  Offset 6E01EH Record Type 0091
> Error 1: Previous Definition Different : __vtbl_10TypeInfo_c
> C:\dmd\lib\phobos.lib(ti_idouble)  Offset 6FB20H Record Type 0091
> Error 1: Previous Definition Different : __init_10TypeInfo_p
> C:\dmd\lib\phobos.lib(ti_idouble)  Offset 6FB3AH Record Type 0091
> Error 1: Previous Definition Different : __Class_10TypeInfo_p
> C:\dmd\lib\phobos.lib(ti_idouble)  Offset 6FB53H Record Type 0091
> Error 1: Previous Definition Different : __vtbl_10TypeInfo_p
> C:\dmd\lib\phobos.lib(ti_Acreal)  Offset 76457H Record Type 0091
> Error 1: Previous Definition Different : __init_11TypeInfo_Ac
> C:\dmd\lib\phobos.lib(ti_Acreal)  Offset 76472H Record Type 0091
> Error 1: Previous Definition Different : __Class_11TypeInfo_Ac
> C:\dmd\lib\phobos.lib(ti_Acreal)  Offset 7648CH Record Type 0091
> Error 1: Previous Definition Different : __vtbl_11TypeInfo_Ac
> C:\dmd\lib\WS2_32.LIB Offset 01A95H Record Type 0088
> Error 1: Previous Definition Different : _htonl@4
> C:\dmd\lib\WS2_32.LIB Offset 01AC5H Record Type 0088
> Error 1: Previous Definition Different : _htons@4
> C:\dmd\lib\WS2_32.LIB Offset 01BB5H Record Type 0088
> Error 1: Previous Definition Different : _ntohl@4
> C:\dmd\lib\WS2_32.LIB Offset 01BE5H Record Type 0088
> Error 1: Previous Definition Different : _ntohs@4
> C:\dm\lib\snn.lib(_exit2)  Offset 00488H Record Type 00C3
> Error 1: Previous Definition Different : __exit
> C:\dm\lib\snn.lib(stream)  Offset 3D014H Record Type 00C3
> Error 1: Previous Definition Different : ?WS@@YAAAVistream@@AAV1@@Z
> (istream
> &cdecl WS(istream &))
> C:\dm\lib\snn.lib(_wfopen)  Offset 7898FH Record Type 00C3
> Error 1: Previous Definition Different : __WFOPEN
> Settings\raf\My.lib
> Warning 2: File Not Found Settings\raf\My.lib
> Documents\d-projects\first\first.exe
> Warning 2: File Not Found Documents\d-projects\first\first.exe
> phobos.lib
> Warning 2: File Not Found phobos.lib
> stlp45dm_static.lib
> Warning 2: File Not Found stlp45dm_static.lib
> C:\dmd\lib\phobos.lib(com)
> Error 42: Symbol Undefined _IID_IUnknown
> C:\dmd\lib\phobos.lib(registry)
> Error 42: Symbol Undefined _RegQueryValueExA@24
> C:\dmd\lib\phobos.lib(registry)
> Error 42: Symbol Undefined _RegCloseKey@4
> C:\dmd\lib\phobos.lib(registry)
> Error 42: Symbol Undefined _RegQueryInfoKeyA@48
> C:\dmd\lib\phobos.lib(registry)
> Error 42: Symbol Undefined _RegCreateKeyExA@36
> C:\dmd\lib\phobos.lib(registry)
> Error 42: Symbol Undefined _RegOpenKeyExA@20
> C:\dmd\lib\phobos.lib(registry)
> Error 42: Symbol Undefined _RegOpenKeyA@12
> C:\dmd\lib\phobos.lib(registry)
> Error 42: Symbol Undefined _RegDeleteKeyA@8
> C:\dmd\lib\phobos.lib(registry)
> Error 42: Symbol Undefined _RegSetValueExA@24
> C:\dmd\lib\phobos.lib(registry)
> Error 42: Symbol Undefined _RegDeleteValueA@8
> C:\dmd\lib\phobos.lib(registry)
> Error 42: Symbol Undefined _RegFlushKey@4
> C:\dmd\lib\phobos.lib(registry)
> Error 42: Symbol Undefined _RegEnumKeyExA@32
> C:\dmd\lib\phobos.lib(registry)
> Error 42: Symbol Undefined _RegEnumValueA@32
> C:\dm\lib\snn.lib(winstart)
> Error 42: Symbol Undefined _WinMain@16
> C:\dm\lib\snn.lib(wconstar)
> Error 42: Symbol Undefined _wmain
> C:\dm\lib\snn.lib(wwinstar)
> Error 42: Symbol Undefined _wWinMain@16
> C:\dmd\lib\\Documents.res
> Warning 2: File Not Found C:\dmd\lib\\Documents.res
> C:\dm\lib\\Documents.res
> Warning 2: File Not Found C:\dm\lib\\Documents.res
> Process terminated with status 0 (0 minutes, 0 seconds)
> 35 errors, 0 warnings
>
> Any ideas? I've checked the dmd.zip and dmc.zip archives are intact and
> they
> check out OK. I've also tried playing around with what libraries to link
> to, but
> that doesn't help. I'd quite like to get to use Code::Blocks, because
> though I
> love vi, I'm currently using an IDE for project work (Eclipse), and I just
> know
> my poor fingers will get confused if I keep switching between the two all
> the
> time!
>
> Have I just completely missed the how to deal with libraries in
> code::blocks
> stuff or is it really obvious and I'm just being a clown? =)
>
> Thanks in advance
>
> Munch
>
> PS It would be nice to use Eclipse for this, but I got a bit confused by
> all the
> different alternative plugins recommended/disrecommended on the main D
> newsgroup
> and the conflicting opinions about which ones were broken etc. If anybody
> has a
> definite answer on this and a link to go to to d/l the plugin, that would
> be
> great. Thanks!
>
> PPS the successful build I get at the Cygwin command line looks very
> different
> when it executes (see below) - the link command is completely different to
> the
> one which Code::Blocks produces. I'm guessing this is something to do with
> the
> reason Code::Blocks isn't working?
>
> $ dmd first.d
> c:\dmd\bin\..\..\dm\bin\link.exe first,,,user32+kernel32/noi;
>
> 


November 22, 2005
In article <dltrp4$rim$1@digitaldaemon.com>, John C says...
>
><Munchgreeble@bigfoot.com> wrote in message news:dltpg9$ps9$1@digitaldaemon.com...

>> Switching to target: default
>> Compiling: first.d
>> Linking console executable: C:\Documents and Settings\raf\My
>> Documents\d-projects\first\first.exe
>> link /nologo /delexe .objs\first.obj C:\dmd\lib\phobos.lib
>> C:\dmd\lib\WS2_32.LIB
>> C:\dm\lib\snn.lib ,C:\Documents and Settings\raf\My
>> Documents\d-projects\first\first.exe,,C:\dmd\lib\\ C:\dm\lib\\ ,
>> OPTLINK (R) for Win32  Release 7.50B1
>> Copyright (C) Digital Mars 1989 - 2001  All Rights Reserved
>
>I can see a couple of problems, probably unrelated to your IDE. File names with spaces are known to give the linker problems - try using a relative path instead or a DOS-style path. You might also need to link in kernel32.lib, user32.lib and uuid.lib.
>
>Also, you don't have to link with phobos, as D does it automatically.
>

OK, thanks. We're getting somewhere. Code::Blocks automatically pulled in those libraries (including phobos) - they weren't specified by me. Having now deleted the list of directories from which Code::Blocks automatically pulls libraries in, and added each of the libraries you suggested by hand, I am no longer getting complaints about things being redefined. However, I still have errors (see below). Surpirsingly  these errors don't seem to be any different if I remove *all* the libraries!

Thanks in advance for your help.

Munch

Project   : hello
Compiler  : Digital Mars D Compiler (called directly)
Directory : C:\d-projects\hello\
--------------------------------------------------------------------------------
Switching to target: default
Compiling: first.d
Linking executable: C:\d-projects\hello\hello.exe
link /nologo /delexe /subsystem:windows .objs\first.obj C:\dm\lib\UUID.LIB
C:\dm\lib\KERNEL32.LIB C:\dm\lib\USER32.LIB ,C:\d-projects\hello\hello.exe,,,
OPTLINK (R) for Win32  Release 7.50B1
Copyright (C) Digital Mars 1989 - 2001  All Rights Reserved

phobos.lib
Warning 2: File Not Found phobos.lib
objs\first.obj(first)
Error 42: Symbol Undefined _main
objs\first.obj(first)
Error 42: Symbol Undefined __acrtused_con
objs\first.obj(first)
Error 42: Symbol Undefined __init_11TypeInfo_Aa
objs\first.obj(first)
Error 42: Symbol Undefined __nullext
objs\first.obj(first)
Error 42: Symbol Undefined __ModuleInfo_3std5stdio
objs\first.obj(first)
Error 42: Symbol Undefined __ModuleInfo_3std6string
OPTLINK : Warning 134: No Start Address
Process terminated with status 0 (0 minutes, 0 seconds)
6 errors, 0 warnings



November 23, 2005
Munchgreeble escribió:
> 
> OK, thanks. We're getting somewhere. Code::Blocks automatically pulled in those
> libraries (including phobos) - they weren't specified by me. Having now deleted
> the list of directories from which Code::Blocks automatically pulls libraries
> in, and added each of the libraries you suggested by hand, I am no longer
> getting complaints about things being redefined. However, I still have errors
> (see below). Surpirsingly  these errors don't seem to be any different if I
> remove *all* the libraries!
> 
> Thanks in advance for your help.
> 
> Munch
> 
> Project   : hello
> Compiler  : Digital Mars D Compiler (called directly)
> Directory : C:\d-projects\hello\
> --------------------------------------------------------------------------------
> Switching to target: default
> Compiling: first.d
> Linking executable: C:\d-projects\hello\hello.exe
> link /nologo /delexe /subsystem:windows .objs\first.obj C:\dm\lib\UUID.LIB
> C:\dm\lib\KERNEL32.LIB C:\dm\lib\USER32.LIB ,C:\d-projects\hello\hello.exe,,,
> OPTLINK (R) for Win32  Release 7.50B1
> Copyright (C) Digital Mars 1989 - 2001  All Rights Reserved
> 
> phobos.lib
> Warning 2: File Not Found phobos.lib
> objs\first.obj(first) Error 42: Symbol Undefined _main
> objs\first.obj(first) Error 42: Symbol Undefined __acrtused_con
> objs\first.obj(first) Error 42: Symbol Undefined __init_11TypeInfo_Aa
> objs\first.obj(first) Error 42: Symbol Undefined __nullext
> objs\first.obj(first) Error 42: Symbol Undefined __ModuleInfo_3std5stdio
> objs\first.obj(first) Error 42: Symbol Undefined __ModuleInfo_3std6string
> OPTLINK : Warning 134: No Start Address Process terminated with status 0 (0 minutes, 0 seconds)
> 6 errors, 0 warnings
> 
> 
> 

Your problem is right in the first warning (I'd call it an error): phobos.lib can't be found by OPTLINK. Did you move/rename/delete it? Maybe you need to check your sc.ini to see if everything is ok.

-- 
Carlos Santander Bernal
November 23, 2005
In article <dm0msc$fv2$2@digitaldaemon.com>, Carlos Santander says...
>
>Your problem is right in the first warning (I'd call it an error): phobos.lib can't be found by OPTLINK. Did you move/rename/delete it? Maybe you need to check your sc.ini to see if everything is ok.

Brilliant - thanks =) We're getting ever closer. There is no problem with the phobos lib or sc.ini - the build works fine from the command line, it's just from within Code::Blocks that I have the problem. I guess it's something to do with the way it calls the compiler? Anyway, I've now put the dmd/lib back into the Code::Blocks link path, and it's not complaining about not being able to see phobos.lib any more. We now have just three errors:

Project   :
Compiler  : Digital Mars D Compiler (called directly)
Directory : C:\d-projects\hello\
--------------------------------------------------------------------------------
Switching to target: default
Compiling: first.d
Linking executable: C:\d-projects\hello\hello.exe
link /nologo /delexe /subsystem:windows .objs\first.obj
,C:\d-projects\hello\hello.exe,,..\..\dmd\lib\ ,
OPTLINK (R) for Win32  Release 7.50B1
Copyright (C) Digital Mars 1989 - 2001  All Rights Reserved

.\..\dmd\lib\phobos.lib(ti_double)  Offset 19FC5H Record Type 0091
Error 1: Previous Definition Different : __init_10TypeInfo_d
.\..\dmd\lib\phobos.lib(ti_double)  Offset 19FDFH Record Type 0091
Error 1: Previous Definition Different : __Class_10TypeInfo_d
.\..\dmd\lib\phobos.lib(ti_double)  Offset 19FF8H Record Type 0091
Error 1: Previous Definition Different : __vtbl_10TypeInfo_d
Process terminated with status 0 (0 minutes, 0 seconds)
3 errors, 0 warnings

Since it's complaining about inconsistencies, I can't help wondering if this version of Code::Blocks, which was released some time ago now, is having some incompatibility problems with the latest compiler/library. That would be a shame cause I guess it would mean this is the end of the road. If anybody has any suggestions please shout!

Thanks

Munch


November 24, 2005
Munchgreeble escribió:
> 
> Brilliant - thanks =) We're getting ever closer. There is no problem with the
> phobos lib or sc.ini - the build works fine from the command line, it's just
> from within Code::Blocks that I have the problem. I guess it's something to do
> with the way it calls the compiler? Anyway, I've now put the dmd/lib back into
> the Code::Blocks link path, and it's not complaining about not being able to see
> phobos.lib any more. We now have just three errors:
> 
> Project   : Compiler  : Digital Mars D Compiler (called directly)
> Directory : C:\d-projects\hello\
> --------------------------------------------------------------------------------
> Switching to target: default
> Compiling: first.d
> Linking executable: C:\d-projects\hello\hello.exe
> link /nologo /delexe /subsystem:windows .objs\first.obj
> ,C:\d-projects\hello\hello.exe,,..\..\dmd\lib\ ,
> OPTLINK (R) for Win32  Release 7.50B1
> Copyright (C) Digital Mars 1989 - 2001  All Rights Reserved
> 
> ..\..\dmd\lib\phobos.lib(ti_double)  Offset 19FC5H Record Type 0091 Error 1: Previous Definition Different : __init_10TypeInfo_d
> ..\..\dmd\lib\phobos.lib(ti_double)  Offset 19FDFH Record Type 0091 Error 1: Previous Definition Different : __Class_10TypeInfo_d
> ..\..\dmd\lib\phobos.lib(ti_double)  Offset 19FF8H Record Type 0091 Error 1: Previous Definition Different : __vtbl_10TypeInfo_d
> Process terminated with status 0 (0 minutes, 0 seconds)
> 3 errors, 0 warnings
> 
> Since it's complaining about inconsistencies, I can't help wondering if this
> version of Code::Blocks, which was released some time ago now, is having some
> incompatibility problems with the latest compiler/library. That would be a shame
> cause I guess it would mean this is the end of the road. If anybody has any
> suggestions please shout!
> 
> Thanks
> 
> Munch
> 
> 

Gee, now I don't know. I truly have no idea, sorry.

-- 
Carlos Santander Bernal
November 24, 2005
Munchgreeble wrote:
> In article <dm0msc$fv2$2@digitaldaemon.com>, Carlos Santander says...
> 
>>Your problem is right in the first warning (I'd call it an error): phobos.lib can't be found by OPTLINK. Did you move/rename/delete it? Maybe you need to check your sc.ini to see if everything is ok.
> 
> 
> Brilliant - thanks =) We're getting ever closer. There is no problem with the
> phobos lib or sc.ini - the build works fine from the command line, it's just
> from within Code::Blocks that I have the problem. I guess it's something to do
> with the way it calls the compiler? Anyway, I've now put the dmd/lib back into
> the Code::Blocks link path, and it's not complaining about not being able to see
> phobos.lib any more. We now have just three errors:
> 
> Project   : Compiler  : Digital Mars D Compiler (called directly)
> Directory : C:\d-projects\hello\
> --------------------------------------------------------------------------------
> Switching to target: default
> Compiling: first.d
> Linking executable: C:\d-projects\hello\hello.exe
> link /nologo /delexe /subsystem:windows .objs\first.obj
> ,C:\d-projects\hello\hello.exe,,..\..\dmd\lib\ ,
> OPTLINK (R) for Win32  Release 7.50B1
> Copyright (C) Digital Mars 1989 - 2001  All Rights Reserved
> 
> .\..\dmd\lib\phobos.lib(ti_double)  Offset 19FC5H Record Type 0091 Error 1: Previous Definition Different : __init_10TypeInfo_d
> .\..\dmd\lib\phobos.lib(ti_double)  Offset 19FDFH Record Type 0091 Error 1: Previous Definition Different : __Class_10TypeInfo_d
> .\..\dmd\lib\phobos.lib(ti_double)  Offset 19FF8H Record Type 0091 Error 1: Previous Definition Different : __vtbl_10TypeInfo_d
> Process terminated with status 0 (0 minutes, 0 seconds)
> 3 errors, 0 warnings
> 
> Since it's complaining about inconsistencies, I can't help wondering if this
> version of Code::Blocks, which was released some time ago now, is having some
> incompatibility problems with the latest compiler/library. That would be a shame
> cause I guess it would mean this is the end of the road. If anybody has any
> suggestions please shout!
> 
> Thanks
> 
> Munch
> 
> 

Is phobos.lib being linked in twice?  I can't make out what the link command line is doing. Nor does it show how dmd was called.  What are the dmd command line arguments?

-JJR
November 24, 2005
I don't know how Code::Blocks calls the compiler I'm afraid - it's not configurable. I think I'm going to give up on Code::Blocks now.
I've been getting on fine with Vim/Cygwin anyway, just get my
editor commands mixed up sometimes. I guess I'll perhaps investigate
the Eclipse plugins.

Thanks for you help though everybody =)

Cheers

Munch
> 
> Is phobos.lib being linked in twice?  I can't make out what the link command line is doing. Nor does it show how dmd was called.  What are the dmd command line arguments?
> 
> -JJR
November 24, 2005
John Reimer wrote:
> Is phobos.lib being linked in twice?  I can't make out what the link command line is doing. Nor does it show how dmd was called.  What are the dmd command line arguments?

Yesterday I made a nice way to snoop at the linker parameters:

Create a (on Windows) "link.bat", or (on Linux) "ld" (a shell script), that just prints out the parameters it got. Change your PATH so that the directory where this fake linker is, is first in PATH.

Or why not create the fake linker with D and have it print the parameters in an even nicer format! :-)

(Or for the _real_ lazy, copy hello.d from samples/d/, compile it and then rename it to "link.exe" or "ld".)

I had it write the results in a file. ("/tmp/ld.out")