在建置 MFC 專案的時候一直建置不起來...
DirectX SDK 都一樣而且 VS2005 參考路徑也都設定了
後來才發現跟主管的 VS2005 環境配置不一樣!!!
原來我少了include PlatformSDK\ common 這個路徑
雖然這看起來很像 VS2005 的 default 路徑但是我去安裝資料夾找卻找不到???
但是建置成功了...
不對阿...why? 難道是我遇到鬼擋牆?也許是我沒重新建置吧

VS2005 中環境配置
VC++ Include:
$(VCInstallDir)include
$(VCInstallDir)atlmfc\include
$(VCInstallDir)PlatformSDK\ include
$(VCInstallDir)PlatformSDK\ common\include
$(FrameworkSDKDir)include
C:\DXSDK\Include
C:\DXSDK\Samples\C++\Common\ Include
C:\DXSDK\Samples\C++\ DirectShow\BaseClasses

VC++ Lib:
$(VCInstallDir)lib
$(VCInstallDir)atlmfc\lib
$(VCInstallDir)atlmfc\lib\i386
$(VCInstallDir)PlatformSDK\lib
$(VCInstallDir)PlatformSDK\ common\lib
$(FrameworkSDKDir)lib
$(VSInstallDir)
$(VSInstallDir)lib
C:\DXSDK\Lib
C:\DXSDK\Samples\C++\ DirectShow\BaseClasses\Release

VisualStudio與Directx SDK版本參考

另外在 VS2005 中專案混和了 .c 及.cpp 的程式檔時會有 precompiled header error 問題
會出現像是:
C1853 編譯器錯誤:fatal error C1853: 'pjtname.pch' precompiled header file is from a previous version of the compiler, or the precompiled header is C++ and you are using it from C (or vice versa)

這個是因為
1. VC 會依據原始碼的副檔名來選擇編譯器的種類
(例如: .c 表示是純 c 的原始碼 , .cpp 表示 C++ 的原始碼)
2. 先行編譯標頭檔的預設是使用C++版本
而不同編譯器在處理函數宣告時的方法不同
所以 C compiler 遇到 C++ 宣告時就會出錯

解決方式:
專案右鍵屬性 -> Configuration Properties -> C\C++ -> Precompiled Headers
將設定 "Use Precompiled Header (/Yu)" 改為 "Not Using Precompiled Headers"

參考來源
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 JohnDX 的頭像
    JohnDX

    我要回家想一想~

    JohnDX 發表在 痞客邦 留言(0) 人氣()