LINK : fatal error LNK1104: 无法打开文件“mfc71.lib”的原因又一例

来源:互联网 发布:java web 工作 编辑:程序博客网 时间:2024/06/09 18:31

LINK : fatal error LNK1104: 无法打开文件“mfc71.lib”的原因一例

http://blog.csdn.net/mxclxp/article/details/8161200


参考:

http://stackoverflow.com/questions/7851325/why-is-my-lib-forcing-the-inclusion-of-mfc40-lib


下文是又一例——

[环境]
  Windows XP OS;
  Visual Studio 2008;
  本来是vs2003开发的工程,迁移至vs2008后出错。

[分析]

   mfc71.lib是vs2003所使用的MFC类库;虽然我的机器中同时安装有vs2003和2008两个版本,不过由于我的vs2008的类库查找PATH中找不到mfc71.lib而报的错。更进一步地说,vs2008的类库查找PATH中本来就不应该找到mfc71.lib,而是应该使用它所对应的mfc90.lib。


[对策]

 打开工程属性, Linker > Input > Ignore Specific Libraries(忽略特定库)中输入 mfc71.lib;mfcs71.lib,重新编译即可。
对应.vcproj文件中选项为:IgnoreDefaultLibraryNames="mfc71.lib;mfcs71.lib"




[后记]
  并不是每个迁移的工程都会报如上的错。目前尚不清楚,迁移后的工程哪个设定使得vs2008一定去找旧的mfc。若能找得到的话,直接修改那个可能是更对的做法。