[Gdal-dev] Problem Building GDAL for Windows CE using EVC++ 4.0

Mateusz Loskot mateusz at loskot.net
Fri Nov 24 10:49:55 EST 2006

kiruba nantham wrote:
> Hello Friends,
>              I am trying to build gdal-cvs-2006.11.16 using *embedded
> c++ 4.0* for Windows CE. I am able to build the *gdalce_evc4d.dll
> *without any errors. But it is throwing around 160 warnings and also it
> is not working in my device.
> Warnings are:
> *Warning C4275*: non dll-interface class 'std::basic_string<char,struct
> std::char_traits<char>, class std::allocator<char> >' used as base for
> dll-interface class 'CPLString'

1. It's highly recommended to use STLport instead of STL from eVC++, if
you are building using eVC++.
2. This warning can be safely ignored

> *                            -This Warning at cpl_string.h( Line - 211)
> **Warning C4530*: C++ exception handler used, but unwind semantics are
> not enabled.     Specify –GX
>                             -*This Warning at xstring( Line - 724)*
>       and also Only in these two Warnings are repeating.

You need to apply patch to your eVC++, please follow these guidelines:


> Linker Warnings Are:
>       mitab_feature.obj : warning LNK1166: cannot adjust code at 
>                    offset=0x00001000, rva=0x0001C7DC.
>       mitab_feature_mif.obj : warning LNK1166: cannot adjust code at
>                    offset=0x00001000, rva=0x000326C0.
>       ogr_srs_proj4.obj : warning LNK1166: cannot adjust code at 
>                    offset=0x00001000, rva=0x000947D0.
>       ogrspatialreference.obj : warning LNK1166: cannot adjust code at
>                    offset=0x00001000, rva=0x000C5794.

These warnings can be safely ignored.

>       If I run this form command prompt it is not building the DLL and
> its Shows this error.
> Error is:
>        fatal error LNK1112: module machine type ‘X86’ conflicts with target
>                                      machine type ‘ARM’*.

I don't know what you're trying to run on what machine, but this message
clearly says there is mismatch of target platform of the binary and
actual platform.

Probably, you use incorrect SDK.

Note, in README there is a step for makefile.vc:

2. Run configuration script for ARM target.

that suggests only ARM platform is supported.

I've never used emulator with eVC++ 4.0 because it is x86 instead of
real ARM emulator. Project files are not prepared for emulator target.
So, I can't help you with using emulator with eVC++ 4.0.

I appologize if README file and instructions are not clear enough.
I will update it for GDAL 1.4.0 release.

Mateusz Loskot

More information about the Gdal-dev mailing list