Module or Dictionary corrupt

Namespace rswhite4 at googlemail.com
Fri Nov 8 13:09:40 PST 2013


On Thursday, 7 November 2013 at 04:50:48 UTC, evilrat wrote:
> On Wednesday, 6 November 2013 at 10:32:01 UTC, Namespace wrote:
>> On Wednesday, 6 November 2013 at 10:21:38 UTC, evilrat wrote:
>>> On Wednesday, 6 November 2013 at 10:13:07 UTC, Namespace 
>>> wrote:
>>>> Should I open a bug for this?
>>>
>>> you should fix ur sc.ini first to use visual studio linker 
>>> for x64 and optlink for x86, you can use dmd 2.064.2 
>>> installer now to do so automatically.
>>
>> I only have a VS shell for VisualD. I assume that I need a 
>> regular version, e.g. C++ Express?
>
> well, yes, and also windows sdk i think

I tried it gain with -m64 with the new release and after 
installing VisualD v0.3.37
My sc.ini looks like that:
----
[Version]
version=7.51 Build 020


; environment for both 32/64 bit
[Environment]
DFLAGS="-I%@P%\..\..\src\phobos" 
"-I%@P%\..\..\src\druntime\import"

; optlink only reads from the Environment section so we need this 
redundancy
; from the Environment32 section (bugzilla 11302)
LIB="%@P%\..\lib"


[Environment32]
LIB="%@P%\..\lib"
LINKCMD=%@P%\link.exe


[Environment64]
LIB="%@P%\..\lib64"

; needed to avoid COMDAT folding (bugzilla 10664)
DFLAGS=%DFLAGS% -L/OPT:NOICF

; default to 32-bit linker (can generate 64-bit code) that has a 
common path
; for VS2008, VS2010, VS2012, and VS2013. This will be overridden 
below if the
; installer detects VS.
LINKCMD=%VCINSTALLDIR%\bin\link.exe


; 
-----------------------------------------------------------------------------
; This enclosed section is specially crafted to be activated by 
the Windows
; installer when it detects the actual paths to VC and SDK 
installations so
; modify this in the default sc.ini within the dmd git repo with 
care.
;
; End users: You can fill in the path to VC and Windows SDK and 
uncomment out
; the appropriate LINKCMD to manually enable support yourself.
;
; Users using Visual Studio 2010 Express with SDK 7.0A: The 
installer cannot
; determine the path to the 64-bit compiler included with SDK 
7.0A. It's
; recommended to install the Windows SDK 7.1A. Alternatively you 
can set
; LINKCMD as the path to link.exe SDK 7.0A installs. It would 
typically be:
;   C:\Program Files (x86)\Microsoft Visual Studio 
9.0\VC\bin\amd64\link.exe


; Windows installer replaces the following lines with the actual 
paths
;VCINSTALLDIR=
;WindowsSdkDir=

; Windows installer uncomments the version detected
;VC2013 LINKCMD=%VCINSTALLDIR%\bin\x86_amd64\link.exe
;VC2012 LINKCMD=%VCINSTALLDIR%\bin\x86_amd64\link.exe
;VC2010 LINKCMD=%VCINSTALLDIR%\bin\amd64\link.exe
;VC2008 LINKCMD=%VCINSTALLDIR%\bin\amd64\link.exe

; needed with /DEBUG to find mspdb*.dll (only for VS2012 or 
VS2013)
;VC2013 
PATH=%PATH%;%VCINSTALLDIR%\bin\x86_amd64;%VCINSTALLDIR%\..\Common7\IDE
;VC2012 
PATH=%PATH%;%VCINSTALLDIR%\bin\x86_amd64;%VCINSTALLDIR%\..\Common7\IDE

; 
----------------------------------------------------------------------------


; Add the library subdirectories of all VC and Windows SDK 
versions so things
; just work for users using dmd from the VS 64-bit Command Prompt

; C Runtime libraries
LIB=%LIB%;"%VCINSTALLDIR%\lib\amd64"

; Platform libraries (Windows SDK 8)
LIB=%LIB%;"%WindowsSdkDir%\Lib\win8\um\x64"

; Platform libraries (Windows SDK 7 and 6)
LIB=%LIB%;"%WindowsSdkDir%\Lib\x64"
----

and my output from VisualD is:
----
OPTLINK (R) for Win32  Release 8.00.13
Copyright (C) Digital Mars 1989-2010  All rights reserved.
http://www.digitalmars.com/ctg/optlink.html
Debug\Foo.obj Offset 00000H Record Type 0064
  Error 138: Module or Dictionary corrupt
----

What must be changed?


More information about the Digitalmars-d-learn mailing list