周海漢 /文
為了清空,將debug目錄刪了。結果編譯時出如下錯誤:
fatal error c1083: cannot open precompiled header file: /'debug/***.pch/':
no such file or directory
怎麼搞都不行。
歸結為同樣問題的錯誤:
fatal error c1010: unexpected end of file while looking for precompiled
header directive
原來,***.pch是預編譯標頭檔案生成的檔案。在project-settings裡面,選中編譯的專案和c/c++頁,在下拉框選precompiled headers, 下面有四個選項。
1.不使用預編譯頭;
2.自動使用預編譯頭;
3.從頭檔案建立預編譯頭,指定標頭檔案;
4.使用預編譯標頭檔案stdafx.h
如果預編譯標頭檔案是stdafx.h,那麼其他的檔案都選4. 而stdafx.cpp選3,並且標頭檔案選stdafx.h
出現第乙個編譯錯誤問題時,只需要把stdafx.cpp重編譯一下,預編譯的***.pch就生成了。而出現第二個編譯問題時,需要把stdafx.h包含在檔案的最開始。
使用了靜態庫,有時出下面的錯誤:
libcd.lib(crt0dat.obj) : error lnk2005: __cinit already defined in libcmt.lib(crt0dat.obj)
libcd.lib(crt0dat.obj) : error lnk2005: _exit already defined in libcmt.lib(crt0dat.obj)
libcd.lib(crt0dat.obj) : error lnk2005: __exit already defined in libcmt.lib(crt0dat.obj)
這是庫和可執行程式使用了不同的庫所引起的衝突。在主程式中的project-settings的link頁,下拉框選input項,
在ignore librarys中增加:
libc.lib,msvcrt.lib,mfc42.lib
若是debug版,則應為:
libcd.lib,msvcrtd.lib,mfc42d.lib。
這時就可以編譯通過了。
類似問題:
error lnk2001: unresolved external symbol __afxforceexclude
這是因為選了ignore all default libraries引起的,去掉就可以了。
使用VC6編譯和使用Ogre引擎
開發網 ogre是開源的封裝了directx和opengl的3d引擎 官方主頁為 安裝 http www.mscto.com 首先解壓縮ogre.rar到你喜歡的目錄 我是放在e ogresdk 然後分別解壓ogrewin32dependencies 0.13.0.zip和dependenciess...
VC 6中的預編譯頭
vc 6中的預編譯頭 預編譯頭的概念 在很多程式中,每個原始檔都存在一些相同的部分。比如要包括相同的一些標頭檔案,而且這些標頭檔案可能很長,例如 window.h 如果用普通的方法編譯這些原始檔,對這些標頭檔案在每個原始檔中的出現都要重新編譯,作了很多重複工作。如果能將這些標頭檔案專門進行編譯,並且...
vc6能用的SDK和庫
可以用它來解析網頁,從而開發出自己特別的需求的 新瀏覽器 也可以擴充套件ie。遨遊,tt等外殼瀏覽器就屬於這類應用。qzone也屬於,新版本的qzone是採用自動化的方式去擴充套件。內含在windows sdk裡。wmencodersdk 為windows media player開發外掛程式或者呼...