我在写wince程序的时候看到要设置debug和release的相应属性,不明白啥意思
我在编译debug和release时看到网上有说的要对属性进行相应的设置
Debug和Release编译时的不同设置:
Debug:
General下的:
Use of MFC 改为:Use MFC in a Shared
Code Generation下的:
Runtime Library 改为:Multi-threaded Debug DLL(/MDd)
Relaese:
General下的:
Use of MFC 改为:Use MFC in a Static Library
Code Generation下的:
Runtime Library 改为:Muti-threaded (/MT)
这是为什么呢?他们之间有啥联系,小弟新手,哪位大哥指点下
[解决办法]
Use MFC in a Shared
如果编译的时候选择Shared
是在共享DLL中使用MFC
Static
是在静态库中使用MFC
实际上是将其集成到你的可执行文件中
拿桌面Windows为例
如果你编译程序的时候,使用Shared
编译出来的程序,是在共享DLL中使用MFC
如果这个exe拿到别人的机器上
但别人的机器上又不存在这个DLL
(他的机器上没安装过VC)
则你的exe会因为找不到需要的DLL导致运行失败
如果编译为Static则不存在这个问题
因为相关的DLL已经集成到了exe中。
拿到别人的机器上直接可以运行
[解决办法]
WinCE下也是同样的道理
Release的时候选择
Use MFC in a Static Library
确保程序一定可以运行
可以用EVC试一下
[解决办法]
Runtime Library
这个是运行时库
Multi-threaded Debug DLL
Multi-threaded
两者区别看起来应该是前者DLL中
能够在调试程序的时候,输出必要的调试信息
以帮助程序员分析自己的代码
Release编译的时候,肯定就不需要
运行时库支持调试信息输出了
则不需选择Debug版本
程序更小,执行更快些。
以上回帖,只是略懂,不一定都正确。楼主自己在看看别人的回帖。
[解决办法]
我觉得这个和属性设置关系不大
EVC编译器陈旧,对于c++标准支持不好
二者编译出的可执行程序还是有差别
甚至支持的语法也有区别
建议楼主另开一贴,描述一下程序功能
以及效果如何不同,并给出关键代码
也许坛友们可以帮你分析一下原因
[解决办法]
另外,楼主及时结掉以前的旧帖。
结贴率太低,别人就不愿意回答你的问题。
现在只有我一个人来回答。
人多建议多