digitalmars.D - DMD under 64-bit Windows 7 HOWTO
- Gor Gyolchanyan (70/70) Dec 18 2012 Good day, fellow D developers.
- Walter Bright (2/7) Dec 18 2012 This belongs in the D wiki.
- "Mariusz =?UTF-8?B?R2xpd2nFhHNraSI=?= <alienballance gmail.com> (4/14) Dec 18 2012 Thanks for this one. Looks like i'll be trying my code on Windows
- Gor Gyolchanyan (7/24) Dec 18 2012 t_Windows_7_(COFF-compatible)>
- Rainer Schuetze (22/93) Dec 18 2012 Thanks for doing this. A few notes:
- Gor Gyolchanyan (6/110) Dec 19 2012 I'd love to have separate sections in sc.ini
- =?UTF-8?B?IlPDqWJhc3RpZW4=?= Kunz-Jacques" (4/106) May 25 2013 I just tried this with the current beta (may 25, 2.063). It lacks
- Rainer Schuetze (3/11) May 25 2013 -m64 isn't displayed in the usage screen (no idea why it is excluded
- =?UTF-8?B?IlPDqWJhc3RpZW4=?= Kunz-Jacques" (6/25) May 25 2013 Thanks for the tip. I had incorrectly put quotes around -m64
- Jonathan Dunlap (25/25) Jun 28 2013 I followed all the instructions to a tea, but I'm getting this
- Michael (34/34) Jun 28 2013 bat file that sets environment for D and related stuff.
- Jonathan Dunlap (8/8) Jun 28 2013 Thanks! Adding those libs to the path worked. However, now I get
- Jonathan Dunlap (2/2) Jun 28 2013 Never mind, I fixed that linker error (had a minor issue with the
- Yongwei Wu (9/9) Aug 18 2013 I recently install DMD, and encountered this page while Googling.
Good day, fellow D developers. After spending much time figuring out how to make DMD work fluently under 64-bit Windows 7 I've realized that this is not a trivial task and lots of people might have trouble with this, so I've decided to post my solution, that might save people a lot of time. As we know, there are compatibility problems with 32-bit DMD binaries, because they are compiled using DMC back-end, which can only produce OMF binaries, so in order to avoid problems with linking against externally compiled libraries, it's much easier to stick to 64-bit binaries, so that DMD will use the Visual Studio linker to produce compatible COFF binaries. Another problem is that 32-bit DMD binaries are linked against obsolete 32-bit WinAPI libraries, which lack some very important functions, while the 64-bit binaries are required to link with the 64-bit libraries, supplied by the the Windows SDK. And here's how this could be arranged: 1. Prepare your development folder. 1.1. Create a folder with no spaces in its full path. 1.2. Store its full path in the '%DEV_DIR_ROOT%' environment variable. 2. Get the Windows SDK. 2.1. Download the Windows SDK. 2.1.1. Navigate to 'http://msdn.microsoft.com/en-US/windows//bb980924.aspx' in a web browser. 2.1.2. Under section 2 (number '2' in a green circle) click on the bold blue 'Install Now' link. 2.1.3. In the opened window click in the blue 'Download' button at the bottom of the page. 2.1.4. Make sure, that the Windows SDK installer ('winsdk_web.exe') is downloaded. 2.2. Install the downloaded Windows SDK. 2.2.1. Navigate to the folder, where the Windows SDK installer was downloaded in a file browser. 2.2.2. Double-click on the installer and agree to security warnings to launch it. 2.2.3. Click next, read and agree to the license until you reach the 'Install Locations' screen. 2.2.4. Store the path under 'Destination Folder for Tools' in the '%DEV_DIR_MSWINSDK%' (e.g. 'C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A') and click 'Next >'. 2.3.3. On the 'Installation Options' uncheck everything except 'x64 Libraries' and 'Visual C++ Compilers' and click 'Next >'. 2.3.4. Confirm that everything is correct and click 'Next >' to start installing. 2.3.5. Make sure, tata the installation is completed succesfully. 2.3.6. Store the path to the installed Visual Studio C++ compiler into the '%DEV_DIR_MSVC%' environment variable (e.g. 'C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC'). 3. Get the DMD. 3.1. Navigate to 'http://ftp.digitalmars.com/dmd2beta.zip' in a web browser. 3.2. Make sure, that the DMD compiler archive ('dmd2beta.zip') is downloaded. 3.3. Unzip the archive into '%DEV_DIR_ROOT%\Tools', so that the 'dmd2' folder in the archive will end up in '%DEV_DIR_ROOT%\Tools\dmd2'. 3.4. Adapt the compiler configuration to the development environment. 3.4.1. Open the file '%DEV_DIR_ROOT%\Tools\dmd2\windows\bin\sc.ini' in a text editor. 3.4.2. Replace the line with 'LIB=' with the line 'LIB="%DEV_DIR_WINSDK%\Lib\x64";"%DEV_DIR_MSVC%\lib\amd64";"% P%\..\lib"'. 3.4.3. Add '-m64 -L/NOLOGO' to the 'DFLAGS' variable. 3.4.4. Remove the lines with 'VCINSTALLDIR=' and 'WindowsSdkDir='. 3.4.5. Replace the like with 'LINKCMD64=' with the line 'LINKCMD64="%DEV_DIR_MSVC%\bin\amd64\link.exe"' Now "%DEV_DIR_ROOT%\Tools\dmd2\windows\bin\dmd.exe" will always use the Windows SDK libraries and Visual C++ compiler to produce 64-bit COFF binaries. I hope I was helpful, because when I started to set up a development environment under 64-bit Windows 7, I went through a lot of problems to get here and I'd love to have this HOWTO at that time. -- Bye, Gor Gyolchanyan.
Dec 18 2012
On 12/18/2012 5:32 AM, Gor Gyolchanyan wrote:Good day, fellow D developers. After spending much time figuring out how to make DMD work fluently under 64-bit Windows 7 I've realized that this is not a trivial task and lots of people might have trouble with this, so I've decided to post my solution, that might save people a lot of time.This belongs in the D wiki.
Dec 18 2012
On Tuesday, 18 December 2012 at 14:47:55 UTC, Walter Bright wrote:On 12/18/2012 5:32 AM, Gor Gyolchanyan wrote:Thanks for this one. Looks like i'll be trying my code on Windows :)Good day, fellow D developers. After spending much time figuring out how to make DMD work fluently under 64-bit Windows 7 I've realized that this is not a trivial task and lots of people might have trouble with this, so I've decided to post my solution, that might save people a lot of time.This belongs in the D wiki.http://wiki.dlang.org/Installing_DMD_on_64-bit_Windows_7_(COFF-compatible)
Dec 18 2012
On Wed, Dec 19, 2012 at 2:04 AM, <"Mariusz Gliwi=C5=84ski\" <alienballance gmail.com>" puremagic.com> wrote:On Tuesday, 18 December 2012 at 14:47:55 UTC, Walter Bright wrote:t_Windows_7_(COFF-compatible)>On 12/18/2012 5:32 AM, Gor Gyolchanyan wrote:This belongs in the D wiki.Good day, fellow D developers. After spending much time figuring out how to make DMD work fluently under 64-bit Windows 7 I've realized that this is not a trivial task and lots of people might have trouble with this, so I've decided to post my solution, that might save people a lot of time.Thanks for this one. Looks like i'll be trying my code on Windows :)http://wiki.dlang.org/**Installing_DMD_on_64-bit_** Windows_7_(COFF-compatible)<http://wiki.dlang.org/Installing_DMD_on_64-bi=Glad to be of help. :-) --=20 Bye, Gor Gyolchanyan.
Dec 18 2012
On 18.12.2012 14:32, Gor Gyolchanyan wrote:Good day, fellow D developers. After spending much time figuring out how to make DMD work fluently under 64-bit Windows 7 I've realized that this is not a trivial task and lots of people might have trouble with this, so I've decided to post my solution, that might save people a lot of time. As we know, there are compatibility problems with 32-bit DMD binaries, because they are compiled using DMC back-end, which can only produce OMF binaries, so in order to avoid problems with linking against externally compiled libraries, it's much easier to stick to 64-bit binaries, so that DMD will use the Visual Studio linker to produce compatible COFF binaries. Another problem is that 32-bit DMD binaries are linked against obsolete 32-bit WinAPI libraries, which lack some very important functions, while the 64-bit binaries are required to link with the 64-bit libraries, supplied by the the Windows SDK. And here's how this could be arranged: 1. Prepare your development folder. 1.1. Create a folder with no spaces in its full path. 1.2. Store its full path in the '%DEV_DIR_ROOT%' environment variable. 2. Get the Windows SDK. 2.1. Download the Windows SDK. 2.1.1. Navigate to 'http://msdn.microsoft.com/en-US/windows//bb980924.aspx' in a web browser. 2.1.2. Under section 2 (number '2' in a green circle) click on the bold blue 'Install Now' link. 2.1.3. In the opened window click in the blue 'Download' button at the bottom of the page. 2.1.4. Make sure, that the Windows SDK installer ('winsdk_web.exe') is downloaded. 2.2. Install the downloaded Windows SDK. 2.2.1. Navigate to the folder, where the Windows SDK installer was downloaded in a file browser. 2.2.2. Double-click on the installer and agree to security warnings to launch it. 2.2.3. Click next, read and agree to the license until you reach the 'Install Locations' screen. 2..2.4. Store the path under 'Destination Folder for Tools' in the '%DEV_DIR_MSWINSDK%' (e.g. 'C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A') and click 'Next >'. 2.3.3. On the 'Installation Options' uncheck everything except 'x64 Libraries' and 'Visual C++ Compilers' and click 'Next >'. 2.3.4. Confirm that everything is correct and click 'Next >' to start installing. 2.3.5. Make sure, tata the installation is completed succesfully. 2.3.6. Store the path to the installed Visual Studio C++ compiler into the '%DEV_DIR_MSVC%' environment variable (e.g. 'C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC'). 3. Get the DMD. 3.1. Navigate to 'http://ftp.digitalmars.com/dmd2beta.zip <http://ftp.digitalmars.com/dmd2beta..zip>' in a web browser. 3.2. Make sure, that the DMD compiler archive ('dmd2beta.zip') is downloaded. 3.3. Unzip the archive into '%DEV_DIR_ROOT%\Tools', so that the 'dmd2' folder in the archive will end up in '%DEV_DIR_ROOT%\Tools\dmd2'. 3.4. Adapt the compiler configuration to the development environment. 3.4.1. Open the file '%DEV_DIR_ROOT%\Tools\dmd2\windows\bin\sc.ini' in a text editor. 3.4.2. Replace the line with 'LIB=' with the line 'LIB="%DEV_DIR_WINSDK%\Lib\x64";"%DEV_DIR_MSVC%\lib\amd64";"% P%\..\lib"'. 3.4.3. Add '-m64 -L/NOLOGO' to the 'DFLAGS' variable. 3.4.4. Remove the lines with 'VCINSTALLDIR=' and 'WindowsSdkDir='. 3.4.5. Replace the like with 'LINKCMD64=' with the line 'LINKCMD64="%DEV_DIR_MSVC%\bin\amd64\link.exe"' Now "%DEV_DIR_ROOT%\Tools\dmd2\windows\bin\dmd.exe" will always use the Windows SDK libraries and Visual C++ compiler to produce 64-bit COFF binaries. I hope I was helpful, because when I started to set up a development environment under 64-bit Windows 7, I went through a lot of problems to get here and I'd love to have this HOWTO at that time.Thanks for doing this. A few notes: - I don't think it is the best idea to have two copies of the compiler to be able to compile for 32-bit and 64-bit targets. That's why I have suggested 2 different environment blocks in sc.ini, but the pull request has not been merged yet: https://github.com/D-Programming-Language/dmd/pull/1220 - With removing VCINSTALLDIR and WindowsSdkDir from sc.ini, you are disabling some magic in the linker invocation. I think this is good, the resulting settings should be in sc.ini. Please note that the environment variables can also be set in the shell environment already (e.g. when using the link to starting cmd.exe created by the SDK installer), setting them to blank might be a good idea. - Most people will already have some other version of the linker and the SDK installed, e.g. as part of Visual Studio or VC++ Express. I think these should be supported aswell. I recently started creating a list of common installations but got distracted somehow. - The Windows 8 SDK uses some other folder hierarchy. - When building with debug information, the linker needs to load some DLLs to generate the PDB file. I had to modify the PATH environment variable in sc.ini as well to not get an error, i.e. 'PATH=%DEV_DIR_MSVC%\bin\amd64;%PATH%'-- Bye, Gor Gyolchanyan.
Dec 18 2012
I'd love to have separate sections in sc.ini This howto really needs some improvement. On Wed, Dec 19, 2012 at 11:54 AM, Rainer Schuetze <r.sagitario gmx.de>wrote:On 18.12.2012 14:32, Gor Gyolchanyan wrote:-- Bye, Gor Gyolchanyan.Good day, fellow D developers. After spending much time figuring out how to make DMD work fluently under 64-bit Windows 7 I've realized that this is not a trivial task and lots of people might have trouble with this, so I've decided to post my solution, that might save people a lot of time. As we know, there are compatibility problems with 32-bit DMD binaries, because they are compiled using DMC back-end, which can only produce OMF binaries, so in order to avoid problems with linking against externally compiled libraries, it's much easier to stick to 64-bit binaries, so that DMD will use the Visual Studio linker to produce compatible COFF binaries. Another problem is that 32-bit DMD binaries are linked against obsolete 32-bit WinAPI libraries, which lack some very important functions, while the 64-bit binaries are required to link with the 64-bit libraries, supplied by the the Windows SDK. And here's how this could be arranged: 1. Prepare your development folder. 1.1. Create a folder with no spaces in its full path. 1.2. Store its full path in the '%DEV_DIR_ROOT%' environment variable. 2. Get the Windows SDK. 2.1. Download the Windows SDK. 2.1.1. Navigate to 'http://msdn.microsoft.com/en-**US/windows//bb980924.aspx<http://msdn.microsoft.com/en-US/windows//bb980924.aspx>' in a web browser. 2.1.2. Under section 2 (number '2' in a green circle) click on the bold blue 'Install Now' link. 2.1.3. In the opened window click in the blue 'Download' button at the bottom of the page. 2.1.4. Make sure, that the Windows SDK installer ('winsdk_web.exe') is downloaded. 2.2. Install the downloaded Windows SDK. 2.2.1. Navigate to the folder, where the Windows SDK installer was downloaded in a file browser. 2.2.2. Double-click on the installer and agree to security warnings to launch it. 2.2.3. Click next, read and agree to the license until you reach the 'Install Locations' screen. 2..2.4. Store the path under 'Destination Folder for Tools' in the '%DEV_DIR_MSWINSDK%' (e.g. 'C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A') and click 'Next >'. 2.3.3. On the 'Installation Options' uncheck everything except 'x64 Libraries' and 'Visual C++ Compilers' and click 'Next >'. 2.3.4. Confirm that everything is correct and click 'Next >' to start installing. 2.3.5. Make sure, tata the installation is completed succesfully. 2.3.6. Store the path to the installed Visual Studio C++ compiler into the '%DEV_DIR_MSVC%' environment variable (e.g. 'C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC'). 3. Get the DMD. 3.1. Navigate to 'http://ftp.digitalmars.com/**dmd2beta.zip<http://ftp.digitalmars.com/dmd2beta.zip> <http://ftp.digitalmars.com/**dmd2beta..zip<http://ftp.digitalmars.com/dmd2beta..zip>>' in a web browser. 3.2. Make sure, that the DMD compiler archive ('dmd2beta.zip') is downloaded. 3.3. Unzip the archive into '%DEV_DIR_ROOT%\Tools', so that the 'dmd2' folder in the archive will end up in '%DEV_DIR_ROOT%\Tools\dmd2'. 3.4. Adapt the compiler configuration to the development environment. 3.4.1. Open the file '%DEV_DIR_ROOT%\Tools\dmd2\**windows\bin\sc.ini' in a text editor. 3.4.2. Replace the line with 'LIB=' with the line 'LIB="%DEV_DIR_WINSDK%\Lib\**x64";"%DEV_DIR_MSVC%\lib\** amd64";"% P%\..\lib"'. 3.4.3. Add '-m64 -L/NOLOGO' to the 'DFLAGS' variable. 3.4.4. Remove the lines with 'VCINSTALLDIR=' and 'WindowsSdkDir='. 3.4.5. Replace the like with 'LINKCMD64=' with the line 'LINKCMD64="%DEV_DIR_MSVC%\**bin\amd64\link.exe"' Now "%DEV_DIR_ROOT%\Tools\dmd2\**windows\bin\dmd.exe" will always use the Windows SDK libraries and Visual C++ compiler to produce 64-bit COFF binaries. I hope I was helpful, because when I started to set up a development environment under 64-bit Windows 7, I went through a lot of problems to get here and I'd love to have this HOWTO at that time.Thanks for doing this. A few notes: - I don't think it is the best idea to have two copies of the compiler to be able to compile for 32-bit and 64-bit targets. That's why I have suggested 2 different environment blocks in sc.ini, but the pull request has not been merged yet: https://github.com/D-** Programming-Language/dmd/pull/**1220<https://github.com/D-Programming-Language/dmd/pull/1220> - With removing VCINSTALLDIR and WindowsSdkDir from sc.ini, you are disabling some magic in the linker invocation. I think this is good, the resulting settings should be in sc.ini. Please note that the environment variables can also be set in the shell environment already (e.g. when using the link to starting cmd.exe created by the SDK installer), setting them to blank might be a good idea. - Most people will already have some other version of the linker and the SDK installed, e.g. as part of Visual Studio or VC++ Express. I think these should be supported aswell. I recently started creating a list of common installations but got distracted somehow. - The Windows 8 SDK uses some other folder hierarchy. - When building with debug information, the linker needs to load some DLLs to generate the PDB file. I had to modify the PATH environment variable in sc.ini as well to not get an error, i.e. 'PATH=%DEV_DIR_MSVC%\bin\** amd64;%PATH%'-- Bye, Gor Gyolchanyan.
Dec 19 2012
On Tuesday, 18 December 2012 at 13:33:03 UTC, Gor Gyolchanyan wrote:Good day, fellow D developers. After spending much time figuring out how to make DMD work fluently under 64-bit Windows 7 I've realized that this is not a trivial task and lots of people might have trouble with this, so I've decided to post my solution, that might save people a lot of time. As we know, there are compatibility problems with 32-bit DMD binaries, because they are compiled using DMC back-end, which can only produce OMF binaries, so in order to avoid problems with linking against externally compiled libraries, it's much easier to stick to 64-bit binaries, so that DMD will use the Visual Studio linker to produce compatible COFF binaries. Another problem is that 32-bit DMD binaries are linked against obsolete 32-bit WinAPI libraries, which lack some very important functions, while the 64-bit binaries are required to link with the 64-bit libraries, supplied by the the Windows SDK. And here's how this could be arranged: 1. Prepare your development folder. 1.1. Create a folder with no spaces in its full path. 1.2. Store its full path in the '%DEV_DIR_ROOT%' environment variable. 2. Get the Windows SDK. 2.1. Download the Windows SDK. 2.1.1. Navigate to 'http://msdn.microsoft.com/en-US/windows//bb980924.aspx' in a web browser. 2.1.2. Under section 2 (number '2' in a green circle) click on the bold blue 'Install Now' link. 2.1.3. In the opened window click in the blue 'Download' button at the bottom of the page. 2.1.4. Make sure, that the Windows SDK installer ('winsdk_web.exe') is downloaded. 2.2. Install the downloaded Windows SDK. 2.2.1. Navigate to the folder, where the Windows SDK installer was downloaded in a file browser. 2.2.2. Double-click on the installer and agree to security warnings to launch it. 2.2.3. Click next, read and agree to the license until you reach the 'Install Locations' screen. 2.2.4. Store the path under 'Destination Folder for Tools' in the '%DEV_DIR_MSWINSDK%' (e.g. 'C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A') and click 'Next >'. 2.3.3. On the 'Installation Options' uncheck everything except 'x64 Libraries' and 'Visual C++ Compilers' and click 'Next >'. 2.3.4. Confirm that everything is correct and click 'Next >' to start installing. 2.3.5. Make sure, tata the installation is completed succesfully. 2.3.6. Store the path to the installed Visual Studio C++ compiler into the '%DEV_DIR_MSVC%' environment variable (e.g. 'C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC'). 3. Get the DMD. 3.1. Navigate to 'http://ftp.digitalmars.com/dmd2beta.zip' in a web browser. 3.2. Make sure, that the DMD compiler archive ('dmd2beta.zip') is downloaded. 3.3. Unzip the archive into '%DEV_DIR_ROOT%\Tools', so that the 'dmd2' folder in the archive will end up in '%DEV_DIR_ROOT%\Tools\dmd2'. 3.4. Adapt the compiler configuration to the development environment. 3.4.1. Open the file '%DEV_DIR_ROOT%\Tools\dmd2\windows\bin\sc.ini' in a text editor. 3.4.2. Replace the line with 'LIB=' with the line 'LIB="%DEV_DIR_WINSDK%\Lib\x64";"%DEV_DIR_MSVC%\lib\amd64";"% P%\..\lib"'. 3.4.3. Add '-m64 -L/NOLOGO' to the 'DFLAGS' variable. 3.4.4. Remove the lines with 'VCINSTALLDIR=' and 'WindowsSdkDir='. 3.4.5. Replace the like with 'LINKCMD64=' with the line 'LINKCMD64="%DEV_DIR_MSVC%\bin\amd64\link.exe"' Now "%DEV_DIR_ROOT%\Tools\dmd2\windows\bin\dmd.exe" will always use the Windows SDK libraries and Visual C++ compiler to produce 64-bit COFF binaries. I hope I was helpful, because when I started to set up a development environment under 64-bit Windows 7, I went through a lot of problems to get here and I'd love to have this HOWTO at that time.I just tried this with the current beta (may 25, 2.063). It lacks the -m64 option. Was it present in some older beta ?
May 25 2013
On 25.05.2013 15:03, "Sébastien Kunz-Jacques" <kunzjacq yahoo.fr>" wrote:On Tuesday, 18 December 2012 at 13:33:03 UTC, Gor Gyolchanyan wrote:-m64 isn't displayed in the usage screen (no idea why it is excluded there), but it is supported aswell as -m32 (the default).I hope I was helpful, because when I started to set up a development environment under 64-bit Windows 7, I went through a lot of problems to get here and I'd love to have this HOWTO at that time.I just tried this with the current beta (may 25, 2.063). It lacks the -m64 option. Was it present in some older beta ?
May 25 2013
On Saturday, 25 May 2013 at 13:24:56 UTC, Rainer Schuetze wrote:On 25.05.2013 15:03, "Sébastien Kunz-Jacques" <kunzjacq yahoo.fr>" wrote:Thanks for the tip. I had incorrectly put quotes around -m64 -L/NOLOGO and the resulting error message unrecognized switch '-m64 -L/NOLOGO' plus the lack of mention of -m64 in the dmd command-line help confused me.On Tuesday, 18 December 2012 at 13:33:03 UTC, Gor Gyolchanyan wrote:-m64 isn't displayed in the usage screen (no idea why it is excluded there), but it is supported aswell as -m32 (the default).I hope I was helpful, because when I started to set up a development environment under 64-bit Windows 7, I went through a lot of problems to get here and I'd love to have this HOWTO at that time.I just tried this with the current beta (may 25, 2.063). It lacks the -m64 option. Was it present in some older beta ?
May 25 2013
I followed all the instructions to a tea, but I'm getting this one error when compiling: == Can't run '"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\amd64\link.exe"', check PATH Exit code -1 Build complete -- 1 error, 0 warnings == The linked DOES exist in the below file and I can directly execute it from cmd: "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\amd64\link.exe" My sc.ini: [Version] version=7.51 Build 020 [Environment] LIB="%DEV_DIR_WINSDK%\Lib\x64";"%DEV_DIR_MSVC%\lib\amd64";"% P%\..\lib" DFLAGS="-m64" "-L/NOLOGO" "-I% P%\..\..\src\phobos" "-I% P%\..\..\src\druntime\import" LINKCMD=% P%\link.exe LINKCMD64="%DEV_DIR_MSVC%\bin\amd64\link.exe" == Also, these directories also exist and have the proper libs: %DEV_DIR_WINSDK%\Lib\x64";"%DEV_DIR_MSVC%\lib\amd64" Help?
Jun 28 2013
bat file that sets environment for D and related stuff. ----- ECHO OFF SET MS_VC_PATH=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC SET MS_SDK_PATH=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A SET DE=%CD%\Environment SET DEC=%DE%\Compiler SET DER=%DE%\Runtime SET DET=%DE%\Tool SET DEC_D=%DEC%\Dmd SET DEC_MINGW=%DEC%\MinGW SET DE_PATH=%DET%;%DEC_D%\windows\bin;%DEC_MINGW%\bin SET DE_LIB=%DEC_D%\windows\lib;%DEC_MINGW%\lib SET DFLAGS=-I%DEC_D%\src\phobos -I%DEC_D%\src\druntime\import SET PATH=%PATH%;%MS_VC_PATH%\bin;%DE_PATH% SET LIB=%LIB%;%DE_LIB% START "D Environment" cmd /E:ON /U /D ----- sc.ini ----- [Version] version=7.51 Build 020 [Environment] VCINSTALLDIR=%MS_VC_PATH%\ WindowsSdkDir=%MS_SDK_PATH%\ LINKCMD=% P%\link.exe LINKCMD64=%VCINSTALLDIR%\bin\x86_amd64\link.exe ----- In general check your paths to: 1. ..\bin\x86_amd64\link.exe 2. mspdb120.dll (it's for VS 2013, mspdb110.dll for VS 2012) 3. add path of mspdb*.dll to PATH variable
Jun 28 2013
Thanks! Adding those libs to the path worked. However, now I get the below error about a missing entry point. ==== LINK : fatal error LNK1561: entry point must be defined --- errorlevel 1561 Exit code 1561 Build complete -- 1 error, 0 warnings ====
Jun 28 2013
Never mind, I fixed that linker error (had a minor issue with the main D entry point). I'm now building x64!
Jun 28 2013
I recently install DMD, and encountered this page while Googling. It gave me some hints, but my changes to make it work on 64-bit Windows 7 + MSVC 2012 is really much less drastic. After adding C:\dmd2\windows\bin to PATH, I only need to edit the LIB line in sc.ini to the following effect: LIB="%VCINSTALLDIR%lib\amd64";"%WindowsSdkDir%lib\win8\um\x64";"% P%\..\lib" I can then launch a VS2012 Developer Command Prompt to use either -m32 and -m64 modes. For the "normal" command prompt, -m32 works, but -m64 does not. I do not feel it a problem for me at all.
Aug 18 2013