VS2008在win7下不时出现Microsoft Incremental Linker已停止工作

(杂揉网络各种方法的综合贴)

这个是因为你的设置有问题。解决方法如下:

项目->属性->链接器->常规

下面的“启用增量链接”,将“是(/INCREMENTAL)”改为“否(/INCREMENTAL:NO)”。

不过这又引入了另外一个警 告:FormatCom.obj : warning LNK4075: 忽略“/EDITANDCONTINUE”(由于“/INCREMENTAL:NO”规范)

选择项目,属性->配置属性 ->C/C++,修改“调试信息格式”为“程序数据库(/Zi)”即可。

/INCREMENTAL 选项控制链接器如何处理增量链接。

默认情况下,链接器以增量模式运行。若要重写默认增量链接,请指定 /INCREMENTAL:NO。

增量链接的程序在功能上等效于非增量链接的程序。不过,因为它是为后面的增量链接而准备的,所以增量链接的可执行 (.exe) 文件或动态链接库 (DLL):

大于非增量链接的程序,因为有代码和数据的填充。(填充允许链接器增加函数和数据的大小而不用重新创建 .exe 文件。)

可以包含跳转 thunk 以处理函数重定位到新地址。

Note注意

为了确保最终发布版本不包含填充或 thunk,请非增量链接您的程序。

若要增量链接而不管默认值,请指定 /INCREMENTAL。选定该选项后,如果链接器无法增量链接,它就会发出警告,然后非增量链接程序。某些选项和情况重写 /INCREMENTAL。

大多数程序都可以增量链接。然而,某些更改太大,某些选项与增量链接不兼容。如果指定了任何下列选项,则 LINK 执行完全链接:

增量链接未被选定 (/INCREMENTAL:NO)

选定 /OPT:REF

选定 /OPT:ICF

选定 /ORDER

指定 /DEBUG 时暗含 /INCREMENTAL。

另外,如果发生以下任何情况,则 LINK 执行完全链接:

缺少增量状态 (.ilk) 文件。(LINK 将创建新的 .ilk 文件以为后面的增量链接作准备。)

对 .ilk 文件没有写入权限。(LINK 忽略 .ilk 文件并进行非增量链接。)

缺少 .exe 或 .dll 输出文件。

更改 .ilk、.exe 或 .dll 的时间戳。

更改 LINK 选项。大多数 LINK 选项在各生成间更改时导致完全链接。

添加或省略对象 (.obj) 文件。

更改用 /Yu /Z7 选项编译的对象。

在 Visual Studio 开发环境中设置此链接器选项

打开此项目的“属性页”对话框。有关详细信息,请参见设置 Visual C++ 项目属性

单击“链接器”文件夹。

单击“常规”属性页。

修改“启用增量链接”属性。

以编程方式设置此链接器选项

请参见 LinkIncremental


另外:

方法一:修改ParameterInfo.xml

VS2008SP1无法安装可能是因为你的VS2008是中文版,英文版不存在该问题。
安装错误是在安装.net3.5SP1的中文语言包的时候,改安装脚本ParameterInfo.xml绕过语言包的安装,

删除下列代码:

<Exe Name="dotnetfx35.exe" URL="http://go.microsoft.com/fwlink/?LinkId=119353&clcid=0x409 " DownloadSize="242743296" SystemDriveSize="859390404" InstalledProductSize="0" InstallCommandLine="/q /norestart /lang:ENU" UninstallCommandLine="/q /uninstall" CanonicalTargetName="#(loc.dotnetfx35sp1)" ExeType="Cartman" LogFileHint="%temp%/dd_dotnet*.txt|%temp%/dd_net_framework*.txt|%temp%/dd_depcheck*.txt|%temp%/../dd_dotnet*.txt|%temp%/../dd_net_framework*.txt|%temp%/../dd_depcheck*.txt" HashValue="0582515BDE321E072F8673E829E175ED2E7A53E803127C50253AF76528E66BC1">
       <ApplicableIf>
         <GreaterThan LeftHandSide="3.5.30729.01" BoolWhenNonExistent="true">
           <RegKeyValue Location="HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/NET Framework Setup/NDP/v3.5/Version" />
         </GreaterThan>
       </ApplicableIf>
     </Exe>

 

方法二:更改文件名

首先把SP1的所有文件复制到硬盘上,打开vs90sp1文件夹,然后复制一份。该文件夹下的VC_x86Runtime.exe改名为dotnetfx35langpack_x86zh-CHS.exe替换该目录的dotnetfx35langpack_x86zh-CHS.exe,然后再运行SPInstaller.exe安装即可。
详细出处参考:http://www.jb51.net/os/windows/35607.html

 

方法三:打上对应中英文版本的VS2008SP1补丁

VS90sp1-KB945140-X64-CHS.msp 这个才是真正的sp1 ,这个装完了,sp1也就装完了。

打开镜象文件,不用自动安装,也不要点SPinstaller.exe ,直接双击 VS90sp1-KB945140-X64-CHS.msp 安装。

这个过程可能也得等待比较长的时候,还有一定要保持连网状态,不能断开网络, 然后等差不多半把小时左右(具体时间没有注意) 就装OK了。

 但是,这样后,在创建MFC Application时,会出现问题:无法找到...fileview.h。

 

方法四:在VS的项目->属性->链接器->常规 下面的“启用增量链接”,将“是(/INCREMENTAL)”改为“否(/INCREMENTAL:NO)”。
不过这又引入了另外一个警 告:FormatCom.obj : warning LNK4075: 忽略“/EDITANDCONTINUE”(由于“/INCREMENTAL:NO”规范)
选择项目,属性->配置属性 ->C/C++,修改“调试信息格式”为“程序数据库(/Zi)”即可。


方法五:下载“VS90-KB948127.exe” 来解决问题vs2008 -fatal error LNK1000 Internal error during IncrBuildImage

下载地址: http://vivian_king.download.csdn.net/

这个补丁在VS2008上无法直接安装,采用方法一比较好



已无法查证源头。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值