4478|15

80

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于用命令行来编译PPC和程序的问题。。。急 [复制链接]

我用
call "%VS80COMNTOOLS%"\vsvars32.bat
将VS的环境起来,然后用
DEVENV /useenv D:\work\test3\test3.sln  /rebuild "release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)"  
编译,出现在了如下问题
uafxcw.lib(appcore.obj) : fatal error LNK1112: module machine type 'ARM' conflicts with target machine type 'X86'

test3.sln是一个非常简单的PPC对话框工程,如果把 /useenv 去掉,就可以编译通过。。

大家谁碰到过这个问题啊。


备注:在PPC上有这个问题,如果是VC++的程序不会有这个问题。

最新回复

qzm
问题己解决 注: 我要和就是替代VS的设置   详情 回复 发表于 2008-6-2 10:52
点赞 关注

回复
举报

78

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
/useenv
是用来加载PATH、INCLUDE、LIBS 和 LIBPATH 等环境变量

看lz的问题应该是你的sdk选择不对,或者设置的cpu类型不对。
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
你的工程文件有问题的,你漏了CPU 类型开关,而且不应该选择ARM,WINCE的PE格式默认标记用THUMB。
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

4
 
我要在哪里设置CPU类型开关呢?


我是用VS建的一个PPC的非常简历的dailog工程,CPU类型应该已经设好了吧

 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

5
 
在属性中linker-command line
看看有什么东西
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

6
 
在Project->Property Pages->Configuration Properties->Linker->Command Line下有这些内容:

All options:
/OUT:"Windows Mobile 5.0 Pocket PC SDK (ARMV4I)\Release\test3.exe" /INCREMENTAL:NO /NOLOGO /MANIFEST:NO /NODEFAULTLIB:"oldnames.lib" /DEBUG /PDB:"d:\work\test3\test3\Windows Mobile 5.0 Pocket PC SDK (ARMV4I)\Release\test3.pdb" /OPT:REF /OPT:ICF /ENTRY:"WinMainCRTStartup" /ERRORREPORT:PROMPT ole32.lib oleaut32.lib uuid.lib

Additional options:
/subsystem:windowsce,5.01

请问我下一怎么做呢
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

7
 
4楼,留个MSN了
我的是  qincui@tom.com
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

8
 
/QRarch4 表示以ARM4体系来编译,兼容ARMV4I,但是不包括ARMV4T

再加上 /subsystem:windowsce,4.20 /machine:ARM /ARMPADCODE
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

9
 
再说白一点吧

就是用VS生成一个非常简单的PPC Dailog程序,然后用命令
DEVENV /useenv ............
执行成功

如果成功了,告诉我是怎么成功的
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

10
 
这个很简单的,很久以前就成功了,你看看DEVENV /? 的说明,很详细了。

可以不使用/useenv 来做,直接 devenv 后面跟开关和 sloution file name,sloution and project name

首先你要确保.sln文件可以在VS界面下编译通过。

Additional options: 里面的内容应该是

/subsystem:windowsce,5.01 /machine:THUMB

or

/subsystem:windowsce,5.01 /machine:THUMB /ARMPADCODE

我上面已经说过了,不加THUMB你在VS里都编译不了。
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

11
 
不使用 /useevn 当然可以通过
我现在一定要使用这个  因为我要动态的加载 include 和 lib 路径,所以必须用 /useevn

 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

12
 
我自己已经set 如下内容
@set INCLUDE=%VCInstallDir%\ce\include;D:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket PC SDK\include\ARMV4I;D:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket PC SDK\include;$(VSInstallDir)SmartDevices\SDK\SQL Server\Mobile\v3.0;$(VCInstallDir)ce\atlmfc\include;%INCLUDE%

@set LIB=D:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket PC SDK\Lib\ARMV4I;%VCInstallDir%\ce\lib\ARMV4I;%VCInstallDir%\ce\atlmfc\lib\ARMV4I;%LIB%

 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

13
 
用 call "%VS80COMNTOOLS%"\vsvars32.bat 将环境起来
在 vsvars32.bat 中有这样一句话:
@echo Setting environment for using Microsoft Visual Studio 2005 x86 tools.

这句话是不是说起来的环境是 x86 的环境???
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

14
 
找了msdn,发现理解不太正确。


/useenv
是用来加载PATH、INCLUDE、LIBS 和 LIBPATH 等环境变量

这个没错。

但是这些环境变量是在vsvars32.bat文件中定义的,而不是vs2005中的那些。

而不用/useenv ,却是用vs2005中的设置。

看这个文章,应该能看明白。
http://msdn.microsoft.com/zh-cn/library/f35ctcxw.aspx
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

15
 
/useenv         Use PATH, INCLUDE, LIBPATH, and LIB environment variables
                instead of IDE paths for VC++ builds.

貌似lenux说的对,不用这个开关,才是用的VS2005的设置,用了的话,反而是替代了。
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

16
 
问题己解决

注:
我要和就是替代VS的设置
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表