编译平台与目标平台不一致带来的麻烦
2015-07-29 16:28
155 查看
今天VS2010编的EXE在XP上显示不是有效的win32应用程序,为此,我们需要编写出对环境依赖小的,能到处跑的程序;
一、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编译出来的程序报错信息如下:
今天VS2010编的EXE在XP上显示不是有效的win32应用程序,为此,我们需要编写出对环境依赖小的,能到处跑的程序;
一、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编译出来的程序报错信息如下:
相关文章推荐
- C语言获取系统时间的方法
- c语言产生随机数的方法:
- CSDN学院 免费技术答疑公开课,本周三场即将开播~~~
- 【cm-3】汇编中的句子:AREA |.text|, CODE, READONLY, ALIGN=2详解
- python生成式生成器
- 循环报数 Java实现
- Datatables 定制化配置方法以及对常用操作的二次封装
- Windows 10正式版升级怎么保留原系统软件?
- MVVM指南二:Flickr搜索深入
- 数字图像处理04(傅里叶变换、频域滤波特性)
- STL(1)---从对->运算符的重载到灵巧指针再到迭代器
- android Socket 编程
- Codeforces 3C
- HDU5319
- Android Fragment 你应该知道的一切
- python切片的问题
- 马拦过河卒
- Linux 下安装phpredis
- 学习的本质
- GCD