ansicon
ansicon copied to clipboard
error linking 64bit on win 8.1 with Visual Studio express 2013
With Visual Studio Express 2013 (widows desktop edition) on Windows 8.1 64bit the 64bit build fails.
- uncomment "BITS = 64" in makefile.vc (otherwise it builds the 32bit app)
- nmake makefile.vc
Microsoft (R) Program Maintenance Utility Version 12.00.21005.1
Copyright (C) Microsoft Corporation. All rights reserved.
mkdir x64
ansicon.c
injdll.c
proctype.c
util.c
procrva.c
.\ansicon.rc
Microsoft (R) Windows (R) Resource Compiler Version 6.3.9600.17298
Copyright (C) Microsoft Corporation. All rights reserved.
x64\ansicon.exe
ANSI.c
.\ansi.rc
Microsoft (R) Windows (R) Resource Compiler Version 6.3.9600.17298
Copyright (C) Microsoft Corporation. All rights reserved.
x64\ANSI64.dll
Creating library x64\ANSI64.lib and object x64\ANSI64.exp
LINK : fatal error LNK1249: image exceeds maximum extent with base address AC000000 and size 0xD000
NMAKE : fatal error U1077: 'echo' : return code '0x2'
Stop.
as the base is explicitly set in the makefile I am presuming it is for a reason.
- uncomment "BITS = 64" in makefile.vc (otherwise it builds the 32bit app)
nmake BITS=64 makefile.vc should do it. Is there no %CPU% or %PLATFORM% variable? 2010 has %Platform%, perhaps that has also become case sensitive in the makefile?
LINK : fatal error LNK1249: image exceeds maximum extent with base address AC000000 and size 0xD000
Weird, I don't now why that wouldn't work (2010 is fine); chopping off a zero might do it. ... Ah, I didn't think Express built 64-bit, and that is indeed what happens if you try with the 32-bit compiler (also explaining why you needed to set BITS). Perhaps you should update to Community (didn't see anything explicitly mentioning 64-bit, but it did say it was the same as Professional, which does it)?
as the base is explicitly set in the makefile I am presuming it is for a reason.
Only to avoid using the same default base address as everything else and having to relocate.
Express 2013 can compile 64bit apps using the 32bit cross compiler, link
Will double check variables, and try with a different base.