"函数没有地址",尽管禁用了优化 (/Od)

"Function has no address" despite disabled optimization (/Od)

本文关键字:优化 Od 函数 地址      更新时间:2023-10-16

>在MSVC 2012调试期间,我尝试从"监视"窗口调用某些函数,以便将数据转储到文件中。但是,我不断收到此错误:

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

Matrix位于我自己的外部库中。快速检查显示,外部库中的所有方法都没有地址,并且所有从 Watch 调用它们的尝试都会返回此错误,头文件中定义的方法除外。主项目中的方法都具有地址,无论它们在何处定义。

当然,优化在整个解决方案中都是禁用的。符号正常加载。我该如何解决?

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

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