天天看點

LINK : fatal error LNK1104: 無法打開檔案“mfc71.lib”的原因又一例

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"

LINK : fatal error LNK1104: 無法打開檔案“mfc71.lib”的原因又一例

[後記]    并不是每個遷移的工程都會報如上的錯。 目前尚不清楚,遷移後的工程哪個設定使得vs2008一定去找舊的mfc。若能找得到的話,直接修改那個可能是更對的做法。