Question : VS2008: fatal error LNK1112: module machine type 'THUMB' conflicts with target machine type 'ARM'

I'm trying to compile a simple (empty) dll project to an ARM processor device.
Project has been generated using Add New Project > Win32 SmartDevice  wizard, STANDARDSDK_500 platform selected.

When I set the compiler options to /MACHINE:ARM, linker fails with LNK1112:
module machine type 'THUMB' conflicts with target machine type 'ARM'

Configuration is: 'Debug|STANDARDSDK_500 (ARMV4I)'

I've StandardSDK500 installed.
How can I compile binaries to ARM architecture?

Answer : VS2008: fatal error LNK1112: module machine type 'THUMB' conflicts with target machine type 'ARM'

alexey_gusev was right. We all have past this THUMB problem. Somehow in the beginning I always conflicted with these SubSystem settings.

If you see somewhere in the project settings "THUMB" - this is the problematic place.

Anyway, the fix is in the project settings.
1. If you will open the project settings, in C/C++ section, in Advanced, please check that you have "ARM4 (/QRarch4)".
2. In Linker section on System page you may have SubSystem "Not Set" or "WindowsCE (/SUBSYSTEM:WINDOWSCE)" - better "Not Set", but if there is a problem switch to Windows CE.
3. In linker command line you may have /subsystem:windowsce,5.0, for example or whatever you need - depends on your device.

I'd install Windows Mobile 6 SDK first (probablt Pocket PC 2003 you already have).

This Standard 500 SDK was a good idea few years ago and, in fact, didn't help much. From my point of view, it is possible to use Pocket PC 2003 SDK for the same purpose.

You can check this article if you wish:
ShareSmall Windows Mobile/CE application for debug or test purpose
http://www.experts-exchange.com/ARTH_4898766.html

Random Solutions  
 
programming4us programming4us