Debug 和 Release 的真正区别,在于一组编译选项。 Debug 版本 参数 含义 /MDd /MLd 或 /MTd 使用 Debug runtime library(调试版本的运行时刻函数库) /Od 关闭优化开关 /D "_DEBUG" 相当于 #define _DEBUG,打开编译调试代码开关(主要针对assert函数) /ZI 创建Edit and continue(编辑继续)数据库,这样在调试过...
首先,分成两种编译模式是因为debug和release内存分配,优化,关键字的处理都不一样。debug的信息是完整的,release缺少以上的很多信息。而且你描述的也不准确,release 只有一些位置能下断点调试的,跟debug不一样的,debug任何地方都是可以调试的。这是因为debug编译的时候没有优化,每一个指令都可以对应到...
Debug版本通常称为调试版本,通过编译选项的配合,编译的结果通常包含调试信息,可以设置断点、单步调试、使用TRACE/ASSERT等调试输出语句并且编译器不会对代码进行任何优化,可以使开发人员提供强大的应用程序调试能力。 Release版本通常称为发布版本,是为了用户的使用,一般发布版本上不允许进行调试,所以Release版本通常不包含调试...
Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。 Debug 和 Release 并没有本质的界限,他们只是一组编译选项的集合。 VS的目录结构: VS采用解决方案+项目的结构,一个解决...
编译后的LIB不一样是正常的。因为DEBUG模式和RELEASE模式下,优化不同,编译导入库可能不同,甚至参与编译的代码也不同(比如代码中有#ifdef _DEBUG)。所以,编译结果无论是LIB/DLL/EXE,都会有明显差别,不必纠结这个。
注意:debug和release版本的库形式上的区别是debug带一个d,而release不带,然后根据debug还是release版本,在链接器->输入->附加依赖项栏目输入对应的库文件,或者使用#pragma comment(lib,”xxx.lib”)在源文件中进行输入。而对应的dll文件,通常直接放入Path系统环境变量中,因为它是在程序执行的时候动态的包含的,所以...
那个只是表示当前活动的配置,你可以将生成模式设定为Release,然后进项目->属性,那个就变成了“活动(Release)”了。
在VS2010下运行,默认是运行DEBUG的,能正常运行并不奇怪, 但是如果你单独把它拷贝出来运行,不一定能够正常工作, 因为在VS2010里面能够运行是因为编译器提供了很多系统变量以及临时变量给你的DEBUG去调用。 当然了,具体情况具体分析,没有看到代码,不能进一步分析。 追问: 请问您有空吗?...
因此,当您在Release模式下编译工程时,却出现了调用debug动态库的现象,原因就在于您在项目设置中选择了“Multi-threaded Debug DLLs”选项。为了解决这个问题,您需要将运行时库选项更改为“Multi-threaded DLLs”,以确保最终生成的exe文件调用的是非调试版本的动态库。这样,您就可以在发布阶段获得更好的...