**UE4 插件編譯及使用的問題**

這些天遇到個項目打包問題,怎麼也編譯不過,最終把問題發給前輩才得以解決(薑還是老的辣,散花……)
當前項目中因爲要打包development版本,所以插件使用中出現了些問題:


1,不到靜態鏈接庫(link時沒有找到插件的靜態鏈接庫)
因爲在項目中Editor模式下(默認,可以在Editor中依次打開“文件->打包項目->編譯設置->發行or開發or調試”來選擇編譯類型)編譯使用的插件只有dll文件,而沒有lib文件,所以需要重新編譯插件,
並且編譯時選擇Development X64(我的當前系統爲64位);
2,差件的配置文件.uplugin中,把type類型從development改爲Runtime
3,插件中關於IMPLEMENT_MODULE(XXX,ModuleName)中的ModuleName和link中的ModuleName要相同,否則鏈接exe文件時會找不到文件,最終會報錯
static FStaticallyLinkedModuleRegistrant< ModuleImplClass > ModuleRegistrant##ModuleName( #ModuleName );
4,關於插件編譯產生的相關鏈接庫說明:Development,DebugGame,Shipping模式下編譯出插件的lib文件,Editor的相關模式下會編譯出dll文件(用於UE4 Editor的熱加載)。
5,關於插件type選擇Runtime的具體原因,UE Doc中這樣解釋:
設置模塊的類型。有效的幾項是:Runtime,RuntimeNoCommandlet,Developer,Editor,EditorNoCommandlet,和 Program。這裏的類型設置決定了該插 件適合於那種類型的應用程序加載。
比如插件中包含的某些模塊,可能只是給 Editor 運行是使用的。 Runtime 的模塊在無論何時都會被加載,哪怕是在最終發行的遊戲版本中也會。Developer 的模塊只會在 Development 運行時或者編輯器版本中才會被加載,
並不在在最終發行版本中加載。Editor 模塊只會隨着 Editor 的啓動被加載。插件也可以使用幾種不同類型的組合來達到所需要的目的。
具體的見: UE4 插件文檔

發佈了36 篇原創文章 · 獲贊 26 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章