windows 32位程序编译成64位

 windows 32位程序编译成64位

转自:http://blog.csdn.net/wangwenjing90/article/details/8755544

VS2010新建的VC++项目默认的组件平台是32位

 

要将它编译为64位程序,按以下步骤:

1.点击“Win32”下拉框,打开“配置管理器”

 

 

2.点击“活动解决方案管理平台”下拉框,选“新建”

3.点击“键入或选择新平台”下拉框,选"x64",然后点击“确定”

4.配置完成,可以看见项目平台都变为x64了,点击关闭即完成。

 

文章二:VS201032bit+WIN764bit编译出不同平台程序版本

转自:http://www.makaidong.com/%E5%8D%9A%E5%AE%A2%E5%9B%AD%E7%9F%A5%E8%AF%86%E5%BA%93/12325.shtml

一、x86,即一般普通pc上跑的程序版本,不用修改工程属性

 

二、x64

1、设置工程平台---会在工程目录下生成  x64 文件夹

在工具栏--->生成--->配置管理器 窗口

  设置“活动解决方案平台”和“平台” 为x64,“平台”那里没有x64,就点击新建。

2、选择目标机器平台

在工具栏--->项目--->xx属性 窗口

  选择  “配置属性”--->"链接器"--->"高级"--->"目标计算机"--->"machinex64"

 

 

三、dll依赖问题

1、取消依赖clr     

  选择  “配置属性”--->"c/c++"--->"公共语言运行时支持"  设置为无

2、设置mfc库连接方式

  “配置属性”--->"常规"--->"mfc使用"

  设置为   “使用标准windows库“  或 ”在静态库中使用mfc“

3、设置代码生成运行库

  “配置属性”--->"c/c++"--->"代码生成"

  设置 ”运行库” 为 "多线程/mt"

 

 

附上csdn论坛上的一个版主的说明:

1. 确定用的是32位编译器
2. 确定不使用/clr选项:这将依赖.net
3. 确定使用/mt静态链接crt
这样编译出来的程序自然可以到处跑。

 

四、可能出现的情况

1、x64下工程平台和机器目标平台不一致报错

  fatal error lnk1112: 模块计算机类型“x86”与目标计算机类型“x64”冲突——我的解决方案

 

五、备注

1、活动解决方案平台,这个和目标程序运行没什么关系,应该不用设置。

  验证 “活动解决方案平台” 为x64 , 项目平台设置为“win32”,在x86 xp下还是能运行,生成程序的目录在release下,而不是x64/release

2、项目平台改变,目标平台也会改变

  验证 “目标计算机” 设置为“machinex64” , 切换工程平台为win32时,查看 “目标计算机” 设置已变成 “machinex86”

3、x86运行x64编译出来的程序报错信息如下:

 

posted @ 2015-11-12 09:24  flylong0204  阅读(3338)  评论(0)    收藏  举报