On 26 May 2013 15:03, Adam Wilson <[email protected]> wrote: > On Sat, 25 May 2013 18:24:41 -0700, Manu <[email protected]> wrote: > > FYI. DMD did not work out-of-the-box on a vanilla VS2012/Win8 install. The > Windows 8 SDK no longer includes the C++ compilers and VS2012 doesn't setup > the Environment Variables used in sc.ini. >
Ah wow, sorry! I had no idea! I tent to lag 2-3 revisions behind the head of VS (finally using 2010) ;) They seem to make every version worse! But the most annoying part is that using the Win8 SDK causes the linker to > spit out dozens of external symbol resolution failures. It was at this > point that I gave up. > > I might just add, that if you have Visual Studio installed (which I >> presume many Windows dev's do), then you don't need to do ANYTHING. >> DMD64 just works if VS is present. >> >> I didn't do a single thing to get DMD-Win64 working. And it's working >> great. >> >> You should make sure this is clear at the top of any wiki entry. >> >> Perhaps a future push to convince Walter to port DMD-Win32 to COFF/WinSDK >> aswell might be nice ;) >> Win32 is still an important platform for many (most?) users. >> >> >> On 18 December 2012 23:32, Gor Gyolchanyan <[email protected]>* >> *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<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. >>> >>> -- >>> Bye, >>> Gor Gyolchanyan. >>> >>> > > -- > Adam Wilson > IRC: LightBender > Project Coordinator > The Horizon Project > http://www.thehorizonproject.**org/ <http://www.thehorizonproject.org/> >
