将VC++项目配置为64位平台
2015-12-30 17:08
246 查看
将原有的程序由32位转换为64位程序,测试下程序性能提升幅度。程序的计算核心库主要是double的计算。
步骤如下:(参照https://msdn.microsoft.com/en-us/library/9yb4317s(v=vs.110).aspx)
1.打开你想配置的项目
2.打开项目的属性页
3.点击配置管理器(O)...打开配置管理器
4.点击下拉活动解决方案平台
5.点击新建...按钮
6.在键入或选择新平台下拉框中选择x64
7.点击确定按钮
8.点击关闭按钮
将win32配置拷贝到64位项目配置,下列选项Win32配置自动更新到项目中:
1. /MACHINE 选项设置为: /MACHINE:X64(项目属性-链接器-高级-目标计算机-MachineX64)
2.关闭注册输出(项目属性-链接器-常规-注册输出-否)
3.目标环境设置x64(项目属性-MIDL-常规-目标环境-基于 x64 的 64 位 Microsoft Windows (/env x64))
4.验证参数清空并重置为缺省参数(项目属性-MIDL-高级-验证参数)
5.调试信息格式设置被设置成/ZI在win32项目配置中,设置成/Zi在win64位项目配置中
这样编译出的程序就是64位程序了。
这里说的不是重点,下面说说重点:
也就是我转换的经验。
首先:项目是ATL创建的图形控件,显示各种图片和dxf。
在转换的过程中,控件编译正常,但是代理动态库编译失败,缺少 xxx._p.c xxx_i.c两个文件。
在网上查了也没有找到解决方案或者相关的信息。
其实这两个文件是控件那个动态库编译自动生成的,怎么能没有呢。
最开始研究的是控件动态库,发现单独编译他的时候这几个中间文件被成功的创建。
为啥编译代理动态库的时候他被删除了呢?继续谷歌还是没有类似的问题。
由于win32的程序正常,最后无照比较32和64的配置的不同点,最后发现:
32位的中间目录:$(Configuration)PS\
64位的中间目录:$(Platform)\$(Configuration)\
这里发现了不同点,$(Platform)这个可以忽略因为这是平台的名字。
后面的差别就是有无PS的问题了。这下恍然大悟,编译代理动态库的时候使用控件的目录和里面的配置文件当然删除
我们缺少的文件了。他们被清理了。
参照32位的修改64位的中间目录为:$(Platform)\$(Configuration)PS\
这下编译解决方案,ok!
这是我将ATL的COM组件配置为64位平台的经验!
步骤如下:(参照https://msdn.microsoft.com/en-us/library/9yb4317s(v=vs.110).aspx)
1.打开你想配置的项目
2.打开项目的属性页
3.点击配置管理器(O)...打开配置管理器
4.点击下拉活动解决方案平台
5.点击新建...按钮
6.在键入或选择新平台下拉框中选择x64
7.点击确定按钮
8.点击关闭按钮
将win32配置拷贝到64位项目配置,下列选项Win32配置自动更新到项目中:
1. /MACHINE 选项设置为: /MACHINE:X64(项目属性-链接器-高级-目标计算机-MachineX64)
2.关闭注册输出(项目属性-链接器-常规-注册输出-否)
3.目标环境设置x64(项目属性-MIDL-常规-目标环境-基于 x64 的 64 位 Microsoft Windows (/env x64))
4.验证参数清空并重置为缺省参数(项目属性-MIDL-高级-验证参数)
5.调试信息格式设置被设置成/ZI在win32项目配置中,设置成/Zi在win64位项目配置中
这样编译出的程序就是64位程序了。
这里说的不是重点,下面说说重点:
也就是我转换的经验。
首先:项目是ATL创建的图形控件,显示各种图片和dxf。
在转换的过程中,控件编译正常,但是代理动态库编译失败,缺少 xxx._p.c xxx_i.c两个文件。
在网上查了也没有找到解决方案或者相关的信息。
其实这两个文件是控件那个动态库编译自动生成的,怎么能没有呢。
最开始研究的是控件动态库,发现单独编译他的时候这几个中间文件被成功的创建。
为啥编译代理动态库的时候他被删除了呢?继续谷歌还是没有类似的问题。
由于win32的程序正常,最后无照比较32和64的配置的不同点,最后发现:
32位的中间目录:$(Configuration)PS\
64位的中间目录:$(Platform)\$(Configuration)\
这里发现了不同点,$(Platform)这个可以忽略因为这是平台的名字。
后面的差别就是有无PS的问题了。这下恍然大悟,编译代理动态库的时候使用控件的目录和里面的配置文件当然删除
我们缺少的文件了。他们被清理了。
参照32位的修改64位的中间目录为:$(Platform)\$(Configuration)PS\
这下编译解决方案,ok!
这是我将ATL的COM组件配置为64位平台的经验!
相关文章推荐
- C++ 函数调用操作符 () 、 函数对象
- C语言函数的作用域规则
- C++ 100款开源界面库——内容细节(现在有变动)不必深究,普及就好
- C++入门(6):复杂的数据类型
- C++ Primer Plus 第六版(中文版)课后编程题----第六章
- c语言中标识符的作用域
- C++双向循环链表(殷人昆版)
- C++循环链表(殷人昆版)
- C++单链表(殷人昆版)
- C++顺序表(殷人昆版)
- c语言_FILE结构体解释及相关操作
- C++开发人脸性别识别教程(3)——OpenCv配置和ImageWatch插件介绍
- C/C++中extern关键字详解
- C++ 学习(使用 using 改写继承类继承成员的性质)
- C++小题(六)
- C++ 学习(派生类到基类准还的可访问性)
- C++开发人脸性别识别教程(2)——VisualStudio初探
- 测试一下
- c++ libjson相关资料
- 如何成为一个C++高级程序员