It's already set to /MACHINE:ARM.
Cannot set /MACHINE:ARMV4I, it's not a valid option.
Main Topics
Browse All TopicsI'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?
This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.
Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.
If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.
Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.
Access the answers to your technology questions today.
30-day free trial. Register in 60 seconds.
Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Try it out and discover for yourself.
30-day free trial. Register in 60 seconds.
Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.
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-
Business Accounts
Answer for Membership
by: alexey_gusevPosted on 2009-11-05 at 04:08:55ID: 25748612
go to the project properties -> Link -> Command Line -> Additional Options
then change /MACHINE:THUMB to /MACHINE:ARMV4I or /MACHINE:ARM