0

我想創建一個應用程序並在其中使用Scaleform。我使用Qt Creator,所以我在.pro中添加了Scaleform的includes和libs,但是我在編譯時遇到了錯誤。 以下是我在的.pro添加(某些行可能不會有用的,但它只是測試,因爲它沒有工作沒有反正):Link Scaleform在Qt Creator中構建應用程序

INCLUDEPATH += "C:/Program Files (x86)/Autodesk/Scaleform/GFx SDK 4.5/Src" 
INCLUDEPATH += "C:/Program Files (x86)/Autodesk/Scaleform/GFx SDK 4.5/Src/GFx" 
INCLUDEPATH += "C:/Program Files (x86)/Autodesk/Scaleform/GFx SDK 4.5/Src/Kernel" 
INCLUDEPATH += "C:/Program Files (x86)/Autodesk/Scaleform/GFx SDK 4.5/Src/Render" 
INCLUDEPATH += "C:/Program Files (x86)/Autodesk/Scaleform/GFx SDK 4.5/Include" 

DEPENDPATH += "C:/Program Files (x86)/Autodesk/Scaleform/GFx SDK 4.5/Src" 
DEPENDPATH += "C:/Program Files (x86)/Autodesk/Scaleform/GFx SDK 4.5/Src/GFx" 
DEPENDPATH += "C:/Program Files (x86)/Autodesk/Scaleform/GFx SDK 4.5/Src/Kernel" 
DEPENDPATH += "C:/Program Files (x86)/Autodesk/Scaleform/GFx SDK 4.5/Src/Render" 
DEPENDPATH += "C:/Program Files (x86)/Autodesk/Scaleform/GFx SDK 4.5/Include" 

LIBS += "C:/Program Files (x86)/Autodesk/Scaleform/GFx SDK 4.5/Lib/Win32/Msvc14/Debug/libgfx.lib" 
LIBS += "C:/Program Files (x86)/Autodesk/Scaleform/GFx SDK 4.5/Lib/Win32/Msvc14/Debug/libgfx_air.lib" 
LIBS += "C:/Program Files (x86)/Autodesk/Scaleform/GFx SDK 4.5/Lib/Win32/Msvc14/Debug/libgfx_as2.lib" 
LIBS += "C:/Program Files (x86)/Autodesk/Scaleform/GFx SDK 4.5/Lib/Win32/Msvc14/Debug/libgfx_as3.lib" 
LIBS += "C:/Program Files (x86)/Autodesk/Scaleform/GFx SDK 4.5/3rdParty/pcre/Lib/Win32/Msvc14/Debug/pcre.lib" 
LIBS += "C:/Program Files (x86)/Autodesk/Scaleform/GFx SDK 4.5/3rdParty/curl-7.29.0/lib/Win32/Msvc14/Debug/libcurl.lib" 
LIBS += "C:/Program Files (x86)/Autodesk/Scaleform/GFx SDK 4.5/Lib/Win32/Msvc14/Debug/libgfxexpat.lib" 
LIBS += "C:/Program Files (x86)/Autodesk/Scaleform/GFx SDK 4.5/Lib/Win32/Msvc14/Debug/libgfxplatform_d3d9.lib" 
LIBS += "C:/Program Files (x86)/Autodesk/Scaleform/GFx SDK 4.5/Lib/Win32/Msvc14/Debug/libgfxplatform_d3d11.lib" 
LIBS += "C:/Program Files (x86)/Autodesk/Scaleform/GFx SDK 4.5/Lib/Win32/Msvc14/Debug/libgfxplatform_gl.lib" 
LIBS += "C:/Program Files (x86)/Autodesk/Scaleform/GFx SDK 4.5/Lib/Win32/Msvc14/Debug/libgfxrender_d3d9.lib" 
LIBS += "C:/Program Files (x86)/Autodesk/Scaleform/GFx SDK 4.5/Lib/Win32/Msvc14/Debug/libgfxrender_d3d11.lib" 
LIBS += "C:/Program Files (x86)/Autodesk/Scaleform/GFx SDK 4.5/Lib/Win32/Msvc14/Debug/libgfxrender_gl.lib" 
LIBS += "C:/Program Files (x86)/Autodesk/Scaleform/GFx SDK 4.5/Lib/Win32/Msvc14/Debug/libgfxsound_fmod.lib" 

在我的.cpp文件:

#include "GFx_Kernel.h" 
#include "GFx.h" //causes the errors 
#include "GFx_Renderer_D3D9.h" 

這將導致以下錯誤:

libgfx.lib(Amp_Message.obj) : error LNK2019: unresolved external symbol _deflate referenced in function "public: virtual bool __thiscall Scaleform::GFx::AMP::Message::Compress(class Scaleform::Array<unsigned char,2,struct Scaleform::ArrayDefaultPolicy> &)const " ([email protected]@[email protected]@[email protected]@[email protected][email protected]@@@[email protected]@Z) 
... 
... 
fatal error LNK1120: 54 unresolved externals 

通常情況下,這是由於缺少lib或不與相同的編譯器作爲應用程序編譯一個lib,但在這裏,一切都建立在MSVC2015,32位。 但是,我的libgfx.lib的日期是07年9月7日,我沒有從Scaleform SDK構建它,因爲顯然沒有構建它的項目(而可以重新構建像libgfxexpat.lib這樣的其他庫)。

我認爲這個問題可能是由於這個原因。我錯了嗎?是否有任何Scaleform SDK中的項目(我安裝了sf_4.5.32_win_vc14_lib.exe)來構建這個庫?

回答

0

_deflate來自zlib,請確保您將它鏈接到您的應用程序中。您的輸出聲明瞭54個未解決的符號 - 我將假設這是因爲您還沒有鏈接到Scaleform的其他任何依賴關係中。

Scaleform分佈有幾種不同的風格 - 'lib'版本不給你源代碼,因此你不能重新編譯它們的庫。如果您想更改編譯選項,進行修改或調試,這很有用,但除此之外,您應該可以使用'lib'庫創建一個功能完整的應用程序。

相關問題