14

在 MSVC 2012 中进行调试期间,我试图从 Watch 窗口调用一些函数,以便将数据转储到文件中。但是,我不断收到此错误:

Function Matrix::Save has no address, possibly due to compiler optimizations.   

该类Matrix位于我自己的外部库中。快速检查表明,外部库中的所有方法都没有地址,并且所有从 Watch 调用它们的尝试都会返回此错误,但在头文件中定义的方法除外。主项目中的方法都有地址,不管它们是在哪里定义的。

当然,整个解决方案都禁用了优化。符号正常加载。我如何解决它?

4

2 回答 2

1

到目前为止,我找到了一种静态构建外部库的解决方法。使用静态链接库,可以找到方法的地址。配置管理器允许为发布轻松保留动态库。

于 2014-12-05T10:25:49.327 回答
1

作为一种更简单的解决方法,您可以在当前代码分支中至少调用一次目标函数( Matrix::Save )。然后它会有一个地址,因为它被使用了。

于 2017-07-24T09:04:31.467 回答