1、vs2005开发WM5时,编译器和linker的选项配合问题

链接:http://www.mivi.name/blog/index_en.php?itemid=258

首先说ARM4 ARM4T 和 ARM4I
ARM4是纯32位的ARM,ARM4T是纯16位THUMB,ARM4还有一个分支ARM4I,是16位和32位混合的
ARM5则是向下兼容的,运行ARM4的程序没问题

在开发和编译Windows Mobile 5.0(ARM4I)的程序时,你也许碰到过如下的错误(PocketPC2003你不会碰到这个问题):
coredll.lib(COREDLL.dll) : fatal error LNK1112: module machine type 'THUMB' conflicts with target machine type 'ARM'
说lib文件的THUMB模式与ARM模式不兼容
编译器的选项:
Project | Properties | Configuration | C++ | Advanced | Compile for Architecture
有选项ARM4ARM4T
Project | Properties | Configuration | C++ | Advanced | Interwork ARM and ARM Thumb Calls
有选项是否允许混合ARM和THUMB调用(即ARM4I)

编译器的选项
Project | Properties | Configuration | Linker | Advanced | Target Machine
有选项MachineARMMachineTHUMB

根据参考网页:
http://forums.microsoft.com/msdn/showpost.aspx?postid=122058&siteid=1&sb=0&d=1&at=7&ft=11&tf=0&pageid=1
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=195585&SiteID=1
的说法,似乎编译WM5的程序时,必须选择的搭配是ARM4T+MachineTHUMB

但是实际使用 发现 如果开启允许混合调用的选项,ARM4或者ARM4T的选项无所谓,但是MachineType仍然必须是MachineTHUMB

而参考VS2005自己生成的Project,以及早期VS2005在beta版本时期的一个MSDN文档,
其实针对wm5.0的做法是:
编译选择ARM4,可以不起用混合调用,然后linker中的Target Machine选择Not Set
这样就可以编译通过不报任何错误了。。。

2、fatal error LNK1112: module machine type 'THUMB' conflicts with target machine type 'ARM'

解决方法:

在WinCE下编程时,常常出现上述错误可以在Project->Setting->Link下将MACHINE:X86改成MACHINE:ARM,如果还不行,直接改为MACHINE:THUMB.

3.WM5.0下,fatal error LNK1112:错误解决方法

将工程从Pocket PC 2003转到Windows Mobile5.0 Pocket PC SDK下,就会出现coredll.lib(COREDLL.dll) : fatal error LNK1112: module machine type 'THUMB' conflicts with target machine type 'ARM',解决方法:ALT+F7打开工程设置,在Configuration Properties->Linker->Command Line,在Additional options:把原来的 /subsystem:windowsce,4.20 /machine:ARM /ARMPADCODE删除,输入 /subsystem:windowsce,5.01就可以,注意此种方法仅适用由VC8.0所建的工程,并不适用于由EVC建的工程转到WM5.0下。

4.在VS 2005中建立的Win32工程总出现这样的运行错误:"MSVCR80D.dll not found"

转:http://www.cppblog.com/pengkuny/archive/2007/03/21/20332.html
在VS 2005中建立的Win32工程总出现这样的运行错误:"MSVCR80D.dll not found"
好几次了,总结各种解决方法如下:

原因:(不知道在说啥)由于VS.net 2005 采用了一种新的DLL方案,搞成一个exe还要配有一个manifest文件(一般在嵌入文件里了,所以看不到,不过也可以不嵌入,这样会生产一个<程序名>.exe.manifest的文件,没它exe自己就转不了了:)这是个新功能,微软弄了个新工具(mt.exe),结果不好用,好像是fat32下时间戳有问题(在ntfs下这个问题就没有了),搞得manifest有时嵌入不到exe中(默认配置是嵌入的,所以就报错找不到 dll了。

解决方法:(任选一个即可)
1.生成Debug版本项目时,未打开连接器的/MANIFEST开关。在 'Project Properties->Configuration Properties->Mainfest Tool->Input and Output->Embed Manifest' 将 YES 改成 NO 就可以了.

2.在“属性->配置属性->清单工具->常规“下有一个”使用FAT32解决办法,把它选成是,就可以了。

3、如果建立的是Win32的项目的话可以在项目-(项目名)属性-配置属性-C/C++-代码生成-运行时库 将其改为多线程调试 /MTd

4、在C:\Program Files\Microsoft Visual Studio 8\VC\redi
st\Debug_NonRedist\x86\Microsoft.VC80.DebugCRT 下找到了下列文件:

msvcm80d.dll
msvcp80d.dll
msvcr80d.dll
Microsoft.VC80.DebugCRT.manifest

把这几个文件拷贝到目标机器上,与运行程序同一文件夹或放到system32下,就可以运行那个程序了。

5、将Debug版本中第一次生成的.res文件删除后重新Build一次

6、采用Release模式,不要采用Debug模式就可以了
试过第一个,确实可以。

转载于:https://www.cnblogs.com/huaping-audio/archive/2009/03/13/1410925.html

VS2005下开发PPC2003和WM50编译器一些设置相关推荐

  1. Python:Python多种集成开发环境(IDE,编译器)的简介、安装、入门、使用方法之详细攻略

    Python:Python多种集成开发环境(IDE,编译器)的简介.安装.入门.使用方法之详细攻略 目录 Python多种编译器的简介.安装.入门.使用方法 1.Anaconda 2.ipython ...

  2. 在 Linux 下开发和下载8051单片机程序

    在 Linux 下开发和下载8051单片机程序 在 Linux 下需要用 sdcc 开发8051单片机程序,用 stcgal 这个 python 程序将编译好的8051单片机程序下载到裸机上. sdc ...

  3. 安装Ubuntu 14.10后要做的事(下)—— 开发工具篇

    1 完善GCC环境 安装g++编译器 命令: sudo apt-get install build-essential build-essential是一套完整的软件包,它提供了编译程序必需的软件包列 ...

  4. Vs2005下重复定义的问题解决

    Vs2005下重复定义的问题解决 ... already defined in ... IT笔记 2009-06-05 10:49:54 阅读166 评论0  字号:大中小 订阅 这几天为VS2005 ...

  5. 如何在linux下开发java程序

    背景 如何在linux下开发java程序,或者更具体一点在linux开发java SDK, 首先明确一下几点 开发工具 如果编译 如何运行 如果写单侧 开发工具 编辑器: 可以直接安装PowerVim ...

  6. php的yii2框架下开发环境xampp,vim,xdebug,DBGp的搭建

    2019独角兽企业重金招聘Python工程师标准>>> 引言 Yii1.1的搭建过程见这里.下面做少许改动,加入composer部分,使之用于Yii2. 选择Linux桌面环境Dee ...

  7. linux与windows下开发,Linux 与 Windows下开发感受

    Linux 和 Windows环境下开发各有优点.以下Linux 下使用感受是在Ubuntu11.04,别的发行版还没试过. 至于各自的缺点,都可以通过各种方法,得到或多或少地解决.至于要花费多大的精 ...

  8. 另种思路:图片转换 变通模拟实现VS2005下TreeView的ChcekBox点击

    为了实现VS2005下TreeView的ChcekBox 点击 根据张Sir的指导(感谢他的无私和指导) 提供如下解决思路: 用两副图片checkboxUncheck.gif 和 checkboxCl ...

  9. Java在eclipse下开发的常用快捷键集锦

    2019独角兽企业重金招聘Python工程师标准>>> Java在eclipse下开发的常用快捷键集锦 ctrl+shift+o 说明:删除无用的代码引用 使用场景:当前文件中的引用 ...

最新文章

  1. 基础二维计算几何板子[预备知识]
  2. python操作mongodb数据库
  3. 搭建Harbor 2.x仓库 - docker私仓搭建
  4. 三种睡眠时间函数的区别:linux 的sleep()、usleep()、nanosleep()函数
  5. 牛客多校8 - All-Star Game(线段树分治+并查集按秩合并的撤销操作)
  6. [转载] 七龙珠第一部——第029话 冒险再度开始
  7. 6U VPX板卡资料:6U VPX 高性能计算存储板卡
  8. 工资计算器的小demo
  9. python中判断生肖和星座哪个准_星座准还是属相
  10. ElasticSearch内存优化
  11. Python+Selenium实现网页截图
  12. #Excel公式应用#从数据透视表进一步汇总文本信息
  13. android绘制半圆弧线_android canvas使用line画半圆
  14. 用1元钱买到原价万元的电脑是什么体验?
  15. 使用神经网络识别手写数字
  16. Vibosoft ePub Converter(ePub转换器)v2.1.24官方版
  17. 简单工厂(静态工厂)
  18. OrCADPADS9.5Cadence学习记录
  19. sqlmap工具说明
  20. 2019年IT行业就业形势

热门文章

  1. python好学吗 老程序员-今天面试了一个34岁大龄程序员,有感而发
  2. 一个python程序员需要掌握的知识-python初学者搭建网站需要了解的基础知识
  3. 精通python爬虫框架-精通Python爬虫框架Scrapy PDF 中文清晰版
  4. python基础语法总结-Python基础语法总结之逻辑运算
  5. python读什么英文-django的英文读法是什么
  6. python职能-高级Python开发工程师职位描述与岗位职责任职要求
  7. python编程课程价格-无锡Python程序开发课程
  8. python小程序源代码-Python数据库小程序源代码
  9. python基础第三章选择结构答案-python3 学习笔记(二)选择结构、循环结构
  10. python转行it好学吗-我研一想转行it,建议Java还是Python呢?