[英]Errors compiling shader - DirectX11
從昨天開始,我一直在嘗試一些編譯器錯誤,以嘗試編譯DirectX11項目。 在我創建並定義了要渲染的對象之前,一切工作正常。 為此,我添加了一個着色器(類型效果)。
編譯器告訴我““ fxc.exe”以代碼1退出”。 為了解決這個問題,我遵循以下答案: DirectX編譯錯誤:錯誤MSB6006:“ fxc.exe”退出,代碼為1
因此,我將HLSL編譯器的着色器模型定義為:
Shader Model 5.0 (/5_0)
但是之后,我仍然出現一些錯誤:
1>c:\program files (x86)\windows kits\8.1\include\um\d3d11shader.h(68): error C3646: 'MinPrecision': unknown override specifier
1>c:\program files (x86)\windows kits\8.1\include\um\d3d11shader.h(68): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\8.1\include\um\d3d11shader.h(235): error C3646: 'InterpolationMode': unknown override specifier
1>c:\program files (x86)\windows kits\8.1\include\um\d3d11shader.h(235): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\8.1\include\shared\dxgi1_2.h(1271): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\8.1\include\shared\dxgi1_2.h(1271): error C2143: syntax error: missing ',' before '*'
1>c:\program files (x86)\windows kits\8.1\include\shared\dxgi1_2.h(1275): error C2061: syntax error: identifier 'DXGI_RGBA'
對於最后三個錯誤,我之前有此錯誤,但在此MSDN頁面的步驟5-a之后進行了修復: https : //msdn.microsoft.com/zh-cn/library/windows/desktop/ee663275(v=vs。 85).aspx但是現在這些錯誤又回來了,我不明白為什么。 我確實再次檢查了項目屬性,但錯誤仍然存在。
我認為這些是一些編譯器錯誤,我嘗試按照上述鏈接的第6步進行修復,但無法正常工作。
我正在使用Visual Studio 2015。
有人可以幫我嗎? 我確實一直在尋找答案並嘗試對其進行修復,但目前似乎沒有任何效果。 謝謝。
您很可能會錯誤地混合使用傳統DirectX SDK和Windows 8.1 SDK。 D3D_MIN_PRECISION
缺少這是在Windows的8.1 SDK版本中定義的定義d3dcommon.h
而不是在傳統的DirectX SDK版本。
確保您的include / libs路徑的Windows 8.1 SDK首先列出。
在包含<d3d11.h>
之前,請確保已明確包含<d3dx11.h>
,以確保選擇正確的版本。
您可能還希望首先明確包含<d3dcommon.h>
。
理想情況下,您只需要在項目中完全不使用舊版DirectX SDK。 請參閱不使用D3DX和Zombie DirectX SDK 。
當然,所有這些都適用於您的C ++代碼。 頭d3d11shader.h
和dxgi1_2.h
不能包含在HLSL着色器代碼中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.