[Gdal-dev] Re: GDAL on 64-bit Windows?

Simon Perkins sy at perkins.net
Tue May 16 12:17:46 EDT 2006


OK, fixed the first problem. The file frmts/pcraster/makefile.vc should 
have the line:

EXTRAFLAGS =     -Ilibcsf -DUSE_IN_GDAL

Rather than:

EXTRAFLAGS =     -Ilibcsf

Without this definition the csftypes.h file doesn't define 
CPU_LITTLE_ENDIAN as it is supposed to. A fallback catches things on 
win32 but not on win64...

I'll check in an update later today.

I now get all the formats built, but then fail at the final link of the 
GDAL library with some missing symbols:

 > nmake /f makefile.vc
...
        link /dll /debug /INCLUDE:_OGRFeatureStylePuller  
/INCLUDE:_OSRValidate  /INCLUDE:_OPTGetProjectionMethods  
/INCLUDE:_OGR_G_GetPointCount  /INCLUDE:_OGRRegisterAll 
/INCLUDE:_GDALSimpleImageWarp at 36  /INCLUDE:_GDALReprojectImage at 48  
/INCLUDE:_GDALComputeMedianCutPCT at 32  /INCLUDE:_GDALDitherRGB2PCT at 28  
/INCLUDE:_vbSafeArrayToPtr at 16  
/INCLUDE:_OCTNewCoordinateTransformation at 8 port\*.obj gcore\*.obj 
alg\*.obj frmts\o\*.obj ogr\ogrsf_frmts\ogrsf_frmts.lib ogr\ogr.lib 
vb6\vb6_support.obj      odbc32.lib                         
gcore\Version.res  /out:gdal13.dll /implib:gdal_i.lib
Microsoft (R) Incremental Linker Version 8.00.50727.42
Copyright (C) Microsoft Corporation.  All rights reserved.

   Creating library gdal_i.lib and object gdal_i.exp
LINK : error LNK2001: unresolved external symbol 
_OCTNewCoordinateTransformation at 8
LINK : error LNK2001: unresolved external symbol _vbSafeArrayToPtr at 16
LINK : error LNK2001: unresolved external symbol _GDALDitherRGB2PCT at 28
LINK : error LNK2001: unresolved external symbol _GDALComputeMedianCutPCT at 32
LINK : error LNK2001: unresolved external symbol _GDALReprojectImage at 48
LINK : error LNK2001: unresolved external symbol _GDALSimpleImageWarp at 36
LINK : error LNK2001: unresolved external symbol _OGRRegisterAll
LINK : error LNK2001: unresolved external symbol _OGR_G_GetPointCount
LINK : error LNK2001: unresolved external symbol _OPTGetProjectionMethods
LINK : error LNK2001: unresolved external symbol _OSRValidate
LINK : error LNK2001: unresolved external symbol _OGRFeatureStylePuller
gdal13.dll : fatal error LNK1120: 11 unresolved externals
NMAKE : fatal error U1077: '"c:\Program Files (x86)\Microsoft Visual 
Studio 8\VC\BIN\x86_amd64\link.EXE"' : return code '0x460'
Stop.

So, the linker is not finding the additional symbols that are added to 
the link line via /INCLUDE flags. Perhaps these symbols have different 
names on x64? Why are these extra symbols addded? How would I find out 
what their equivalents are for x64? Is there some equivalent for "nm" to 
dump library symbols on windows?

Has nobody out there tried a 64-bit windows compile yet? Surely I'm not 
the first! :)

Cheers,

Sy


Simon Perkins wrote:
> Hi,
>
> Has anyone successfully compiled GDAL on 64-bit windows (in 64-bit 
> mode). I'm using Visual Studio 2005, with the command line tools 
> enabled using the "x86_amd64" option, which uses the 32-bit compiler 
> to create 64-bit executables and libraries. With GDAL 1.3.2:
>
> > nmake /f makefile.vc
>
> ...
>
> C:\cygwin\home\154712\src\gdal-1.3.2\frmts>cd pcraster   && nmake 
> /NOLOGO /f mak
> efile.vc   && cd ..
>        cl /nologo /MD /EHsc /Ox -I..\..\port -I..\..\ogr 
> -I..\..\gcore  -I..\..
> \alg -Ilibcsf /c pcrasterdataset.cpp
> pcrasterdataset.cpp
> c:\cygwin\home\154712\src\gdal-1.3.2\frmts\pcraster\libcsf\csftypes.h(383) 
> : fat
> al error C1189: #error :  BYTE ORDER NOT SPECIFIED (CPU_LITTLE_ENDIAN 
> or CPU_BIG
> _ENDIAN)
> NMAKE : fatal error U1077: '"c:\Program Files (x86)\Microsoft Visual 
> Studio 8\VC
> \BIN\x86_amd64\cl.EXE"' : return code '0x2'
> Stop.
>
> C:\cygwin\home\154712\src\gdal-1.3.2\frmts\pcraster>cd leveller   && 
> nmake /NOLO
> GO /f makefile.vc   && cd ..
> The system cannot find the path specified.
>
> C:\cygwin\home\154712\src\gdal-1.3.2\frmts\pcraster>cd sgi   && nmake 
> /NOLOGO /f
> makefile.vc   && cd ..
> The system cannot find the path specified.
>
> C:\cygwin\home\154712\src\gdal-1.3.2\frmts\pcraster>cd idrisi   && 
> nmake /NOLOGO
> /f makefile.vc   && cd ..
> The system cannot find the path specified.
>
> C:\cygwin\home\154712\src\gdal-1.3.2\frmts\pcraster>cd jpeg   && nmake 
> /NOLOGO /
> f makefile.vc   && cd ..
> The system cannot find the path specified.
>
> C:\cygwin\home\154712\src\gdal-1.3.2\frmts\pcraster>cd bsb   && nmake 
> /NOLOGO /f
> makefile.vc   && cd ..
> The system cannot find the path specified.
>
> C:\cygwin\home\154712\src\gdal-1.3.2\frmts\pcraster>cd zlib   && nmake 
> /NOLOGO /
> f makefile.vc   && cd ..
> The system cannot find the path specified.
> NMAKE : fatal error U1077: 'for' : return code '0x1'
> Stop.
> NMAKE : fatal error U1077: '"c:\Program Files (x86)\Microsoft Visual 
> Studio 8\VC
> \BIN\nmake.EXE"' : return code '0x2'
> Stop.
>
>
>
> Any ideas?
>
> Cheers,
>
> Sy
>
>



More information about the Gdal-dev mailing list