該錯(cuò)誤是因?yàn)楫?dāng)項(xiàng)目中混合了 .cpp 和 .c 文件時(shí),編譯器會(huì)對(duì)它們采取不同的編譯方式(主要是因?yàn)閷?duì)函數(shù)聲明的處理方式不同),
因而不能共用一個(gè)預(yù)編譯頭文件。在 VC++ 中,默認(rèn)的預(yù)編譯頭文件是針對(duì) C++ 的 (stdafx.h 和 stdafx.cpp),當(dāng)然也可以創(chuàng)建針對(duì) C 的預(yù)編譯頭。
方法:將少數(shù)的不同類文件設(shè)為不使用預(yù)編譯頭是比較平衡的做法,方法是:對(duì)于 VC++6.0,在 FileView 里對(duì)要取消預(yù)編譯頭的 .c (或 .cpp) 文件點(diǎn)右鍵,
選擇 settings,在彈出的對(duì)話框右邊選擇 category 為 precompiled headers,再設(shè)置選項(xiàng)為 not using ...;
(對(duì)于 VS2005,則在 solution explorer 中對(duì)相應(yīng)文件點(diǎn)右鍵選擇 properties,在 precompiled headers 項(xiàng)下設(shè)置 not using... 即可。如果需要設(shè)置多個(gè)文件,
則可以按住 Ctrl 鍵再同時(shí)選中這些文件并設(shè)置)
PS:解釋如下點(diǎn)擊項(xiàng)目 點(diǎn)擊屬性 然后選擇C/C++ 預(yù)編譯頭 創(chuàng)建使用頭文件 不使用預(yù)編譯頭文件
(解決方案資源管理器-右擊需要排除的c或cpp文件]-彈出屬性菜單-展開(kāi)C/C++-預(yù)編譯頭-創(chuàng)建/使用預(yù)編譯頭-選擇不適用預(yù)編譯頭)