Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我如何在MSVC';有没有限制被损坏的名字的长度?_C++_Visual Studio 2010_Linker Errors_Name Mangling - Fatal编程技术网

C++ 我如何在MSVC';有没有限制被损坏的名字的长度?

C++ 我如何在MSVC';有没有限制被损坏的名字的长度?,c++,visual-studio-2010,linker-errors,name-mangling,C++,Visual Studio 2010,Linker Errors,Name Mangling,我有一段大量使用模板的代码,导致名称非常长(超过3000个字符)。使用MSVC 10在发布模式下构建时,这不是问题——可能是因为所有内容都按预期内联。但是,当我尝试在调试模式下构建时,我会收到关于未解析外部符号的链接器错误。它们不能是外部的,因为它们只是隐式实例化的,所以它们的定义肯定存在于翻译单元中 我观察到的一件奇怪的事情是,虽然一些损坏的名称完全出现在错误消息中,但其他名称似乎被截断,并在末尾附加了一些类似于散列值的内容。截断的损坏名称和散列的长度为255个字符。我假设这是MSVC通过限制

我有一段大量使用模板的代码,导致名称非常长(超过3000个字符)。使用MSVC 10在发布模式下构建时,这不是问题——可能是因为所有内容都按预期内联。但是,当我尝试在调试模式下构建时,我会收到关于未解析外部符号的链接器错误。它们不能是外部的,因为它们只是隐式实例化的,所以它们的定义肯定存在于翻译单元中

我观察到的一件奇怪的事情是,虽然一些损坏的名称完全出现在错误消息中,但其他名称似乎被截断,并在末尾附加了一些类似于散列值的内容。截断的损坏名称和散列的长度为255个字符。我假设这是MSVC通过限制名称长度来加速链接的一些技巧


那么,有什么合理的方法来解决这一混乱局面吗?

is 2047 chars。255限制适用于调试器,可能是可见的。当然,几乎每个人都可以想出一个合理的方法来保持在2048以下:不要这样做。当你有一个大量使用模板的大型代码库时,要避免这一点并不容易。