2014-02-05 27 views
0

我想根據下面的教程使用visual studio創建一個簡單的Arnold渲染器着色器。 https://support.solidangle.com/display/mayatut/Creating+a+shader使用C++編譯着色器(LNK2019錯誤)

我創建了一個應用程序類型設置爲DLL的win32console應用程序,並將我的包含庫和ai.lib添加到鏈接器輸入中。

當我嘗試編譯,我遇到了

錯誤1着色器:error LNK2019: unresolved external symbol __imp__AiNodeParamRGB referenced in function "void __cdecl Parameters(struct AtList *,struct AtMetaDataStore *)" ([email protected]@[email protected]@[email protected]@@Z) C:\Users\matt\Documents\Visual Studio 2013\Projects\ConsoleApplication2\ConsoleApplication2\ConsoleApplication2.obj ConsoleApplication2

錯誤2:error LNK2019: unresolved external symbol __imp__AiShaderEvalParamFuncRGB referenced in function "void __cdecl Evaluate(struct AtNode *,struct AtShaderGlobals *)" ([email protected]@[email protected]@[email protected]@@Z) C:\Users\matt\Documents\Visual Studio 2013\Projects\ConsoleApplication2\ConsoleApplication2\ConsoleApplication2.obj ConsoleApplication2

任何幫助嗎?

回答

0

您試圖鏈接一個64位庫(ai.lib)來創建一個32位dll。換句話說,鏈接器抱怨,因爲它不瞭解ai.lib體系結構。 64位和32位體系結構之間的不匹配導致了這個問題。如果您的系統是32位,則無法編譯着色器。如果你有一個64位系統,你可以設置VC++來編譯和編譯一個64位的dll。

在VC++ 的工具欄上單擊Win32(調試旁邊),然後打開下拉菜單。 選擇配置管理器,在平臺下拉菜單中選擇x64。 清理並重新構建。