首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

请问一个动态库编译上的有关问题

2013-12-23 
请教一个动态库编译上的问题。vs2005编译环境。有一个解决方案包含多个项目,某个项目A(是个dll工程)代码没有

请教一个动态库编译上的问题。
vs2005编译环境。有一个解决方案包含多个项目,某个项目A(是个dll工程)代码没有改动。这个A.dll的debug版本大概340k,release版本以前是116k,昨天再做其他修改时由于编译原因将整个解决方案全编译了一下,结果现在这个A.dll的release版本变成320k了。这个明显有问题,而且release版本在运行时程序会崩溃(会提示什么堆损坏,可能是由于某些dll有bug。),debug版本运行是没有问题。之前的备份编译出的A.dll是正常的,使用也没有问题,但在现在这个工程里编译老是320k。这种情况可能的原因是什么?搞了一天了,才找出是这个A.dll的问题,但不知为啥会这样?参照另外那个正确的编译设置都一样的
[解决办法]
这个问题很复杂。A虽然没有修改,但是它可能依赖某个公共头文件的#if或者define。编译选项可能也对它有所影响,有时候为了追求效率编译的时候选择内联展开,实际运行的指令完全是不同的。

先分析下A的依赖关系,看看最近的改动都伤及到A的哪里。检查一下编译选项。

热点排行