如何解决ld.exe:DWARF错误:在偏移量101cee处找不到变量规范
我得到大量输出,并显示以下消息(仅按十六进制地址区分):
ld.exe: DWARF error: could not find variable specification at offset 101cee
此错误的一般含义是什么?
在编译发行版时不会发生这种情况。仅调试版本。
解决方法
基本上,我刚刚找到了解决方案。我将其放在这里,因为我在StackOverflow中没有发现这样的问题。如果我的某些职位有误,请回答。
我将一个库编译为静态库,但是没有正确的#define
指令,所有导出的函数都得到一个__declspec(dllexport)
前缀。因此,函数function
的名称变为__imp_function
。
所以,它只是一个undefined reference to __imp_function
。
但是为什么要如此加密呢?为什么释放版本编译正确?
我相信发生这种情况是由于-flto
选项可以链接时间优化,并且将库的所有代码保留在.a文件中,因此,不需要引用(不会失败)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。