Hmmm, I found details on the net that recommended adding an [Environment64] section, which we did.

I don't seem to have VCINSTALLDIR or WindowsSdkDir variables on my system :/ .. that said, VC obviously works on my machine.
It also seems potentially problematic that a variable would define a single install directory, since it's pretty common that programmers have multiple versions of VS on their machines.
I have VS2010 and VS2012 on my machine. Simon had VS2012 and VS2013.

I was also thinking it might be a mistake to keep phobos64.lib in the same folder as the 32bit omf libs. If paths are wrong, the link errors will only be understood by a programmer who understands compilers and lib/object formats in depth.
Perhaps you should put them in a parallel lib64 directory, and hook that up in [Environment64] (I did that on my machine while trying to isolate problems and wort out where paths were coming from)?

I reckon you should look into hooking up DirectX SDK patahing by default too since it's so common for basically any multimedia app.


On 1 September 2013 17:42, Walter Bright <newshound2@digitalmars.com> wrote:
On 8/31/2013 7:05 PM, Manu wrote:
The only compiler you can realistically use productively in windows is
DMD-Win64, and that doesn't work out of the box.
We needed to mess with sc.ini for quite some time to get the stars aligned such
that it would actually compile and find the linker+libs.

Walter: DMD needs to internally detect installations of various versions of
VisualStudio, and either 'just work', or amend sc.ini on its own. Or the
installer needs to amend sc.ini. Either way, leaving it to a user to fiddle with
an ini file just isn't acceptable. We had to google solutions to this problem,
and even then, we had trouble with the paths we added to sc.ini; are spaces
acceptable? Do they have quites around them?...
I might also suggest that Microsoft supplied (ie, 'standard'), libraries should
be automatically detected and path entries added in there too:
   C:\Program Files (x86)\Microsoft SDKs\...
   C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\...
These are on basically every windows developers machine, and each of us had to
configure them ourselves.

The default sc.ini contains:
-----------------------------
[Version]
version=7.51 Build 020

[Environment]
LIB="%@P%\..\lib";\dm\lib
DFLAGS="-I%@P%\..\..\src\phobos" "-I%@P%\..\..\src\druntime\import"
LINKCMD=%@P%\link.exe
LINKCMD64=%VCINSTALLDIR%bin\amd64\link.exe
VCINSTALLDIR=%VCINSTALLDIR%
WindowsSdkDir=%WindowsSdkDir%
----------------------------------

When I installed VC 2010, it set the environment variables VCINSTALLDIR and WindowsSdkDir. Then, the default sc.ini should "just work".

What went wrong, specifically?