【发布时间】:2019-08-12 22:17:59
【问题描述】:
在发布模式下,Visual Studio 2015 给我一个关于损坏的静态库文件的错误,而在调试模式下却没有。我仔细比较了每种模式的设置,没有发现任何我认为会导致这种情况的差异。
这是实际的错误: C:\repositories\svn\code\Main\Libraries\WindowLib\x64\Release\WindowLib.lib :致命错误 LNK1107:无效或损坏的文件:无法读取 0x37F5C5C
我在网上找到的所有内容似乎都表明此错误源于意外链接到 .dll 而不是静态库,或者 .lib 文件已损坏。
该文件绝对不是 .dll - 因此所有关于它作为解决方案的问题/答案都不适用。
至于它已损坏,我不确定 Visual Studio 为何或如何创建损坏的静态库文件。我已经在 2 台不同的计算机上多次尝试过,并且错误是一致的。这似乎并不表示文件损坏。
由于这个完全相同的设置过去可以正常工作,我倾向于认为这与静态库文件的大小(刚刚超过 2 GB)有关。然而:
1) 调试模式下构建的静态 .lib 文件较大(3.5 GB),链接也很好。
2) 我没有看到任何对文件大小的引用导致这种类型的 错误(Visual Studio 似乎报告了更像“我不能 当文件太多时,请归档此文件”或“我无法打开此文件” 大)。
3) 我在发布模式下仔细实现了 Visual Studio 调试模式中的所有设置,这些设置似乎有助于解决文件大小问题。
【问题讨论】:
标签: visual-c++ visual-studio-2015 linker static-libraries lib