提问人:Yaron Tausky 提问时间:12/15/2015 更新时间:12/15/2015 访问量:204
如何解决 MSVC 对损坏名称长度的限制?
How could I work around MSVC's limit on the length of mangled names?
问:
我有一段代码大量使用模板,导致名称非常长(超过 3000 个字符长)。在使用 MSVC 10 在发布模式下生成时,这不是问题 - 可能是因为一切都按预期内联。但是,当我尝试在调试模式下构建时,我收到有关未解析外部符号的链接器错误。它们不能是外部的,因为它们只是隐式实例化,因此它们的定义肯定存在于翻译单元中。
我观察到的一件奇怪的事情是,虽然一些被破坏的名称完全出现在错误消息中,但其他名称似乎被截断了,最后附加了一些看起来像哈希值的东西。被截断的残缺名称和哈希值加起来的长度为 255 个字符。我假设这是 MSVC 用来通过限制名称长度来加速链接的一些技巧。
那么,有什么合理的方法可以解决这个烂摊子吗?
答: 暂无答案
评论