链接错误C1128和LNK1210

Posted 力为

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了链接错误C1128和LNK1210相关的知识,希望对你有一定的参考价值。

1. Fatal Error C1128:number of sections exceeded object file format limit : compile with /bigobj

解决办法:

http://msdn2.microsoft.com/en-us/library/8578y171.aspx

 

2. Fatal error LNK1210: exceeded internal ILK size limit:
There was not enough memory available for LINK to create the incremental status (.ilk) file.

 

别人的解释:

"1. The 64MB limit is there to keep the ILK file from consuming too much of
the memory necessary to perform the link in the first place. It needs to be
reserved up front and doesn't move throughout the link. It holds the
in-memory data for linking which includes other pointers. The fact is,
linking is quite expensive in terms of memory and the larger a project is,
the larger the requirements, in general. We have to balance both the ILK
size and the size remaining we have to work with.


2. I am surprised VC6.0's linker has a different limit. I am certain it has
the same or lower, but that is beside the point now. It may have slipped out
without one and we fixed it. I do know that the intent of 7.0 was to use a
96MB limit, but due to a bug, that limit was not reached.


3. The limit is 256MB on machines running with the /3GB switch. Windows XP
allows /3GB on all SKUs now so that is one option. For the next release we
are raising the limit to 128MB on vanilla NT. It is about at that point that
we start infringing on the memory requirements of the image itself along
with all of the file I/O we have to do to perform the link.


ILK size is roughly equivalent to the image size, so they are a very large
image for x86. The largest image we have been able to link on an x86 machine
is roughly 350MB (an ia64 image). The memory requirements for doing this are
above 1GB of VM. In fact, anything over about 60MB of image size really
benefits from the /3GB switch or running on Win64."

 

解决办法:

移除/Zm选项

Error LNK2005: _DllMain@12 already defined in msvcrtd.lib(dllmain.obj)
mfcs90ud.lib
解决办法:
重定义连接顺序mfcs90ud.lib msvcrtd.lib

以上是关于链接错误C1128和LNK1210的主要内容,如果未能解决你的问题,请参考以下文章

无法使用命令行链接库(错误 LNK2019)

链接器工具错误 LNK2011

C++ 链接器错误 - 错误 LNK2005: ... 已定义

链接器错误 LNK2038:在发布模式下检测到不匹配

使用另一个模板类链接一个模板类(错误 LNK2001)

链接:致命错误 LNK1104:无法打开文件 'ucrt.lib'