在MSVC 2012中进行调试期间,我试图从Watch窗口调用一些函数,以便将数据转储到文件中。但是,我一直收到这个错误:
Function Matrix::Save has no address, possibly due to compiler optimizations.
班级Matrix
位于我自己的外部库中。快速检查显示外部库中的所有方法都没有地址,并且所有从Watch调用它们的尝试都会返回此错误,但头文件中定义的除外。主项目中的方法都具有地址,无论它们在何处定义。
当然,在整个解决方案中禁用优化。符号正常加载。我该如何解决?
答案 0 :(得分:1)
到目前为止,我找到了静态构建外部库的解决方法。使用静态链接库,可以找到方法的地址。配置管理器允许轻松保留Release的动态库。
答案 1 :(得分:1)
作为一个更简单的解决方案,您可以在当前代码分支中至少调用一次目标函数( Matrix :: Save )。然后它将有一个地址,因为它被使用。