我正在尝试将 Profile Guided Optimization (PGO) 与 VS8 一起使用。在对有问题的 DLL 进行检测后,我将其复制到安装了我们的应用程序并运行训练场景的机器上。然后,我将pgc培训文件复制回我的开发箱并收到以下错误:
1>StdAfx.obj : 致命错误 LNK1270: 无效文件;时间戳与 /LTCG:PGINSTRUMENT 链接的文件不匹配
此错误的MSDN条目说:
无效文件; 时间戳与使用 /LTCG:PGINSTRUMENT 链接的文件不匹配指定 /LTCG:PGINSTRUMENT 时传递给链接器的相同文件也必须在指定 /LTCG:PGOPTIMIZE 时传递。
/LTCG:PGOPTIMIZE 要求输入与 /LTCG:PGINSTRUMENT 阶段相同。
要解决此警告,请运行 /LTCG:PGINSTRUMENT,重做所有测试运行,然后运行 /LTCG:PGOPTIMIZE,或者使用 /LTCG:PGUPDATE 而不是 /LTCG:PGOPTIMIZE 创建优化的映像。
重新运行测试并不能解决问题(尽管它有时会出现在其他文件中,而不是 stdafx.obj)。
Using/LTCG:PGUPDATE
确实有效,但是我想了解是什么导致了错误,或者失败了,使用PGUPDATE
而不是有任何缺点(我在MSDN PGO 页面PGOPTIMIZE
中找不到任何相关内容)。