vc++程序编译后,产生的“.lib”文件,有没有debug和release版本之分?
debug:调试版本, 包含调试信息,所以容量比release大很多, 并且不进行任何优化(优化会使调试复杂化,因为源代码和生成的指令间关系会更复杂),方便你调试。
release:发布版本, 不对源代码进行调试,编译时对应用程序的速度进行优化,使得程序在代码大小和运行速度上都是最优的。(调试信息可在单独的PDB文件中生成)
编译生成的lib文件,默认是相同的,不过可以设置,debug版本带个后缀d,以便于区分。
不建议将它们进行混用。可能会给你带来意想不到的问题。
在Windows系统下,debug和release版本的dll/lib不能相互替换的,因为它们所依赖库是不一样的。
在Linux系统下,其实是没有所谓的debug和release版本之分,只有优化和未优化、是否生成调试符号之分,是可以混着用的。
当然有啊。
debug和release版本的lib是不能替换的,因为本身它们编译依赖的库也是不一样的。debug库的库文件名最后一个字符都是d,比如MFC42d.dll,而release用的是MFC42.dll
Debug通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。
Debug 和 Release 的真正秘密,在于一组编译选项。下面列出了分别针对二者的选项
有,不能混用