Re: Compile/link Win64

2014-01-16 Thread Vladimir Panteleev
On Wednesday, 15 January 2014 at 22:21:18 UTC, Nick Sabalausky 
wrote:

\Program Files (x86)\Windows Kits\ doesn't exist :(

As I suspected, it must not have installed correctly.


Nick, did you notice my reply from 4 days ago?

http://forum.dlang.org/post/lumcuftlvokawuneq...@forum.dlang.org

I believe that under certain conditions, the MS linker will just 
skip over libraries of certain bitness, so I suspect that might 
be your problem.


I don't think the platform/Windows SDK is related to the problem 
in your first post because Visual Studio 2005 (VS8), which is 
what you had in your paths, comes with its own copy (the 
PlatformSDK directory).


Re: Compile/link Win64

2014-01-16 Thread Vladimir Panteleev

On Friday, 10 January 2014 at 20:32:53 UTC, Brad Anderson wrote:
Hmm, that's strange, %WindowsSdkDir% isn't set. I thought 
vcvarsall.bat was supposed to set up all of that.


Appears to be a common problem with VC2008:

http://stackoverflow.com/questions/1102689/windowssdkdir-is-not-set-correctly-in-visual-studio-2008


According to this post[1], he is using VC2005 (VS8), not 2008. 
2005 comes with its own copy of the SDK, under VC/PlatformSDK.


http://forum.dlang.org/post/lapkjf$pio$1...@digitalmars.com


Re: Compile/link Win64

2014-01-15 Thread Nick Sabalausky

On 1/12/2014 5:37 PM, Erik van Velzen wrote:

On Friday, 10 January 2014 at 21:47:23 UTC, Nick Sabalausky wrote:

Hmm, I hadn't ever uninstalled it.

Regardless, *now* I've just uninstalled and reinstalled the Windows
SDK, and re-ran vcvarsall.bat. The %WindowsSdkDir% is now set, but I'm
still getting the same problem.

The %WindowsSdkDir% is set to C:\Program Files (x86)\Microsoft
SDKs\Windows\v8.0A, but there doesn't appear to be much in there
(Just a Bootstrapper\Packages directory with not much inside it
either). I don't think it installed correctly. There doesn't appear to
be any other Windows SDK installation AFAICT either. Stupid f#*^#
microsoft tools...



The lastest Windows SDK installs to C:\Program Files (x86)\Windows
Kits\8.1\



\Program Files (x86)\Windows Kits\ doesn't exist :(

As I suspected, it must not have installed correctly.



Re: Compile/link Win64

2014-01-12 Thread Vladimir Panteleev

On Friday, 10 January 2014 at 20:18:55 UTC, Nick Sabalausky wrote:

On 1/10/2014 3:06 PM, Vladimir Panteleev wrote:
On Friday, 10 January 2014 at 20:02:49 UTC, Nick Sabalausky 
wrote:

LINK : fatal error LNK1104: cannot open file 'shell32.lib'


What are your LIB and LIBPATH environment variables set to?


echo %LIB%
C:\Program Files (x86)\Microsoft Visual Studio 
8\VC\ATLMFC\LIB;C:\Program Files (x86)\Microsoft Visual Studio 
8\VC\LIB;C:\Program Files (x86)\Microsoft Visual Studio 
8\VC\PlatformSDK\lib;C:\Program Files (x86)\Microsoft Visual 
Studio 8\SDK\v2.0\lib;


echo %LIBPATH%
C:\Windows\Microsoft.NET\Framework\v2.0.50727;C:\Program Files 
(x86)\Microsoft Visual Studio 8\VC\ATLMFC\LIB


That's not right. If you're building for x64, the LIB paths 
should contain amd64 library directories.


Are you running the vcvarsall batch file with the right parameter 
(amd64)?


Re: Compile/link Win64

2014-01-12 Thread Erik van Velzen

On Friday, 10 January 2014 at 21:47:23 UTC, Nick Sabalausky wrote:

Hmm, I hadn't ever uninstalled it.

Regardless, *now* I've just uninstalled and reinstalled the 
Windows SDK, and re-ran vcvarsall.bat. The %WindowsSdkDir% is 
now set, but I'm still getting the same problem.


The %WindowsSdkDir% is set to C:\Program Files (x86)\Microsoft 
SDKs\Windows\v8.0A, but there doesn't appear to be much in 
there (Just a Bootstrapper\Packages directory with not much 
inside it either). I don't think it installed correctly. There 
doesn't appear to be any other Windows SDK installation AFAICT 
either. Stupid f#*^# microsoft tools...



The lastest Windows SDK installs to C:\Program Files 
(x86)\Windows Kits\8.1\


Compile/link Win64

2014-01-10 Thread Nick Sabalausky

I never seem to be able to remember how to get 64-bit going on windows.

I've extracted the zip for DMD 2.064.2, I ran the vcvarsall.bat, but 
trying to compile this trivial hello world:


import std.stdio;
void main()
{
writeln(Hello);
}

 [path_to]dmd.2.064.2\dmd2\windows\bin\dmd -m64 hello.d

Gives me this:

LINK : fatal error LNK1104: cannot open file 'shell32.lib'
--- errorlevel 1104

On a slightly more complicated program (a simple mysql-native test 
program), I get this:


LINK : fatal error LNK1104: cannot open file 'ws2_32.lib'
--- errorlevel 1104

I also tried uncommenting the appropriate line in sc.ini:

;VC2008 LINKCMD=%VCINSTALLDIR%\bin\amd64\link.exe
to:
LINKCMD=%VCINSTALLDIR%\bin\amd64\link.exe

But that had no effect.


Re: Compile/link Win64

2014-01-10 Thread Vladimir Panteleev

On Friday, 10 January 2014 at 20:02:49 UTC, Nick Sabalausky wrote:

LINK : fatal error LNK1104: cannot open file 'shell32.lib'


What are your LIB and LIBPATH environment variables set to?


Re: Compile/link Win64

2014-01-10 Thread Nick Sabalausky

On 1/10/2014 3:06 PM, Vladimir Panteleev wrote:

On Friday, 10 January 2014 at 20:02:49 UTC, Nick Sabalausky wrote:

LINK : fatal error LNK1104: cannot open file 'shell32.lib'


What are your LIB and LIBPATH environment variables set to?


echo %LIB%
C:\Program Files (x86)\Microsoft Visual Studio 
8\VC\ATLMFC\LIB;C:\Program Files (x86)\Microsoft Visual Studio 
8\VC\LIB;C:\Program Files (x86)\Microsoft Visual Studio 
8\VC\PlatformSDK\lib;C:\Program Files (x86)\Microsoft Visual Studio 
8\SDK\v2.0\lib;


echo %LIBPATH%
C:\Windows\Microsoft.NET\Framework\v2.0.50727;C:\Program Files 
(x86)\Microsoft Visual Studio 8\VC\ATLMFC\LIB




Re: Compile/link Win64

2014-01-10 Thread Brad Anderson

On Friday, 10 January 2014 at 20:02:49 UTC, Nick Sabalausky wrote:
I never seem to be able to remember how to get 64-bit going on 
windows.


I've extracted the zip for DMD 2.064.2, I ran the 
vcvarsall.bat, but trying to compile this trivial hello world:


import std.stdio;
void main()
{
writeln(Hello);
}

 [path_to]dmd.2.064.2\dmd2\windows\bin\dmd -m64 hello.d

Gives me this:

LINK : fatal error LNK1104: cannot open file 'shell32.lib'
--- errorlevel 1104

On a slightly more complicated program (a simple mysql-native 
test program), I get this:


LINK : fatal error LNK1104: cannot open file 'ws2_32.lib'
--- errorlevel 1104

I also tried uncommenting the appropriate line in sc.ini:

;VC2008 LINKCMD=%VCINSTALLDIR%\bin\amd64\link.exe
to:
LINKCMD=%VCINSTALLDIR%\bin\amd64\link.exe

But that had no effect.


I don't have VC2008 so I unfortunately could not test while I was 
working on the installer/sc.ini update. Rainer says 2008 does 
work though. With modern VC there is a vcvars32.bat and 
vcvars64.bat to choose whether to use the 32-bit or 64-bit 
toolchain. What is the value of %WindowsSdkDir% within your 
vcvars.bat command prompt?


Re: Compile/link Win64

2014-01-10 Thread Nick Sabalausky

On 1/10/2014 3:19 PM, Brad Anderson wrote:


I don't have VC2008 so I unfortunately could not test while I was
working on the installer/sc.ini update. Rainer says 2008 does work
though. With modern VC there is a vcvars32.bat and vcvars64.bat to
choose whether to use the 32-bit or 64-bit toolchain. What is the value
of %WindowsSdkDir% within your vcvars.bat command prompt?


Hmm, that's strange, %WindowsSdkDir% isn't set. I thought vcvarsall.bat 
was supposed to set up all of that.




Re: Compile/link Win64

2014-01-10 Thread Nick Sabalausky

On 1/10/2014 3:26 PM, Nick Sabalausky wrote:

On 1/10/2014 3:19 PM, Brad Anderson wrote:


I don't have VC2008 so I unfortunately could not test while I was
working on the installer/sc.ini update. Rainer says 2008 does work
though. With modern VC there is a vcvars32.bat and vcvars64.bat to
choose whether to use the 32-bit or 64-bit toolchain. What is the value
of %WindowsSdkDir% within your vcvars.bat command prompt?


Hmm, that's strange, %WindowsSdkDir% isn't set. I thought vcvarsall.bat
was supposed to set up all of that.



It's also not set if I go into VS's [idiotic] Visual Studio Command 
Prompt either. :/




Re: Compile/link Win64

2014-01-10 Thread Brad Anderson

On Friday, 10 January 2014 at 20:26:35 UTC, Nick Sabalausky wrote:

On 1/10/2014 3:19 PM, Brad Anderson wrote:


I don't have VC2008 so I unfortunately could not test while I 
was
working on the installer/sc.ini update. Rainer says 2008 does 
work
though. With modern VC there is a vcvars32.bat and 
vcvars64.bat to
choose whether to use the 32-bit or 64-bit toolchain. What is 
the value

of %WindowsSdkDir% within your vcvars.bat command prompt?


Hmm, that's strange, %WindowsSdkDir% isn't set. I thought 
vcvarsall.bat was supposed to set up all of that.


Appears to be a common problem with VC2008:

http://stackoverflow.com/questions/1102689/windowssdkdir-is-not-set-correctly-in-visual-studio-2008


Re: Compile/link Win64

2014-01-10 Thread Rainer Schuetze



On 10.01.2014 21:34, Nick Sabalausky wrote:

On 1/10/2014 3:26 PM, Nick Sabalausky wrote:

On 1/10/2014 3:19 PM, Brad Anderson wrote:


I don't have VC2008 so I unfortunately could not test while I was
working on the installer/sc.ini update. Rainer says 2008 does work
though. With modern VC there is a vcvars32.bat and vcvars64.bat to
choose whether to use the 32-bit or 64-bit toolchain. What is the value
of %WindowsSdkDir% within your vcvars.bat command prompt?


Hmm, that's strange, %WindowsSdkDir% isn't set. I thought vcvarsall.bat
was supposed to set up all of that.



It's also not set if I go into VS's [idiotic] Visual Studio Command
Prompt either. :/



IIRC this variable is read from the registry by vcvars*.bat, but 
uninstalling any SDK deletes the registry entry. So if you had multiple 
SDK versions installed, but removed one, the variable will no longer be set.


Re: Compile/link Win64

2014-01-10 Thread Nick Sabalausky

On 1/10/2014 3:56 PM, Rainer Schuetze wrote:



On 10.01.2014 21:34, Nick Sabalausky wrote:

On 1/10/2014 3:26 PM, Nick Sabalausky wrote:

On 1/10/2014 3:19 PM, Brad Anderson wrote:


I don't have VC2008 so I unfortunately could not test while I was
working on the installer/sc.ini update. Rainer says 2008 does work
though. With modern VC there is a vcvars32.bat and vcvars64.bat to
choose whether to use the 32-bit or 64-bit toolchain. What is the value
of %WindowsSdkDir% within your vcvars.bat command prompt?


Hmm, that's strange, %WindowsSdkDir% isn't set. I thought vcvarsall.bat
was supposed to set up all of that.



It's also not set if I go into VS's [idiotic] Visual Studio Command
Prompt either. :/



IIRC this variable is read from the registry by vcvars*.bat, but
uninstalling any SDK deletes the registry entry. So if you had multiple
SDK versions installed, but removed one, the variable will no longer be
set.


Hmm, I hadn't ever uninstalled it.

Regardless, *now* I've just uninstalled and reinstalled the Windows SDK, 
and re-ran vcvarsall.bat. The %WindowsSdkDir% is now set, but I'm still 
getting the same problem.


The %WindowsSdkDir% is set to C:\Program Files (x86)\Microsoft 
SDKs\Windows\v8.0A, but there doesn't appear to be much in there (Just 
a Bootstrapper\Packages directory with not much inside it either). I 
don't think it installed correctly. There doesn't appear to be any other 
Windows SDK installation AFAICT either. Stupid f#*^# microsoft tools...


In any case, the issue I was hunting down turned out to be Posix-related 
instead of 64-bit-related anyway, so I'm not going to deal with this 
anymore for the time being.