編譯VC靜態庫中遇到的C2859錯誤解決方案

今天把原來寫的max插件與新引擎整合下, MAXSDK又噁心了一次. 居然有core.lib這種第三方庫導致與我的core.lib鏈接衝突, 真是霸道, 沒辦法, 只有我讓步,我改名.

之後,發現每次即便每次完整編譯完成,開始調試時,所有工程都會重複編譯一次,Clean後,再編譯,報了 一個vc90.pdb有關的C2859錯誤.

error C2859: x:\XXX\vc60.pdb is not the pdb file that was used when this precompiled header was created, recreate the precompiled header.
mschart.cpp

 

大概意思就是預編譯頭問題. 嘗試着改名等,都不能完全解決, 乾脆在Configuration Properties | C/C++  | Output Files裏的Program Database File Name改爲$(IntDir)\$(ProjectName).pdb, 也就是讓 靜態庫pdb不是默認的vc90.pdb,而是跟隨項目名稱,瞬間, 問題解決,不會反覆出現重編譯問題.

寫本文之前,Google了下其他人怎麼解決這樣的問題,結果居然看到有人說去掉預編譯頭. 這不是我做事的方法,爲什麼不動下腦筋解決這個問題呢?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章