`
aigo
  • 浏览: 2675543 次
  • 性别: Icon_minigender_1
  • 来自: 宜昌
社区版块
存档分类
最新评论

[UE4]windows和android调用第三方C++库(静态库lib、动态库dll)

UE4 
阅读更多

 官方wiki

C++调用静态库StaticLibrary(lib)

Linking Static Libraries

https://wiki.unrealengine.com/Linking_Static_Libraries_Using_The_Build_System

 

C++调用动静态链接库Dynamic Link Library(dll)

Linking Dlls

https://wiki.unrealengine.com/Linking_Dlls

 

再给一个Android版本添加静态库的例子,参考Photon SDK(在“工程.Build.cs”中添加),其实linux、windows也都是这么添加的,区别就是引用的文件不一样,windows是dll和lib,linux是.so和.a(linux上的so和a文件和android上的so和a文件是两码事,android上的so和a必须通过NDK编译获得):

private string PhotonPath
{
    get { return Path.GetFullPath(Path.Combine(ModulePath, "..", "Photon")); }
}
//
if ( Target.Platform == UnrealTargetPlatform.Android)
{
    // Set _EG_WINDOWS_PLATFORM for Windows, _EG_IPHONE_PLATFORM for iOS and _EG_IMAC_PLATFORM for OS X
    Definitions.Add("_EG_ANDROID_PLATFORM");
    //
    PublicAdditionalLibraries.Add(Path.Combine(PhotonPath, "lib", "Android", "libcommon-cpp-static_debug_android_armeabi_no-rtti.a"));
    PublicAdditionalLibraries.Add(Path.Combine(PhotonPath, "lib", "Android", "libphoton-cpp-static_debug_android_armeabi_no-rtti.a"));
    PublicAdditionalLibraries.Add(Path.Combine(PhotonPath, "lib", "Android", "libloadbalancing-cpp-static_debug_android_armeabi_no-rtti.a"));
}

 

 

 

论坛参考

Link to 3rd Party Libraries

https://answers.unrealengine.com/questions/76792/link-to-3rd-party-libraries.html

How do I add thirdparty library?

https://answers.unrealengine.com/questions/218616/how-do-i-add-thirdparty-library.html

How do you statically link an external DLL/dylib to your project?

https://answers.unrealengine.com/questions/197667/how-do-you-statically-link-an-external-dlldylib-to.html

 

分享到:
评论

相关推荐

    UE4调DLL示例——成功

    在UE4(Unreal Engine 4)中,DLL(Dynamic Link Library)的调用是一个常见的需求,它允许我们实现代码的复用和模块化。这篇教程将深入讲解如何在UE4项目中成功调用DLL。 首先,理解DLL的基本概念至关重要。DLL是...

    编译好的libssl.lib,libcrypto.lib 包含lib,dll,头文件

    描述中的内容再次强调了这个压缩包包含的组件:lib文件(即静态链接库)、dll文件(动态链接库)和头文件。dll文件(如libssl.dll和libcrypto.dll)是在运行时提供函数调用的共享库,它们可以被多个进程同时使用,...

    UE5-OpenCV库的加载方式

    对于Windows系统,通常会得到一个.lib文件(静态库)和.dll文件(动态库)。静态库会在编译时链接到你的项目,而动态库则需要在运行时可用。 在UE5项目中添加OpenCV支持,你需要进行以下步骤: 1. **配置项目设置*...

    open62541.rar

    描述中提到,这个压缩包内包含的是使用Visual Studio 2015编译的open62541库——即`.lib`静态链接库和`.dll`动态链接库。这些库文件是开发人员在Windows平台上集成OPC UA功能到他们的应用程序时需要的。同时,压缩包...

    cryptopp.dll 已编译的多个版本(5.6.1.0, 5.5.2.0, 5.3.0.0, 5.2.3.0, 5.2.0.0, 5.0.4.0)

    标题和描述中提到的“cryptopp.dll”是一个动态链接库文件,它是Crypto++库的一部分。Crypto++是一个开源的、免费的C++类库,提供了各种加密和解密算法,包括对称加密、非对称加密、哈希函数、消息认证码(MAC)以及...

    opencv-forUE-build.rar

    4. 静态库(`.a`或`.lib`):静态库在编译时被整合进你的可执行文件,使得无需额外的`.dll`文件也能运行。 在Unreal Engine中使用OpenCV时,你还需要关注性能优化,因为视觉处理可能会消耗大量计算资源。合理地使用...

    MyProject.zipue4添加模块代码

    在UE4中,模块是以C++类的形式存在,每个模块对应一个静态库(.lib/.a)或动态链接库(.dll/.dylib)。在`Source`目录下,你可能会看到类似于`MyProject`、`MyModule`这样的子目录,每个子目录代表一个模块,其中...

    使用windows meidia player作为控件制作的音乐视频播放器

    总的来说,这个项目涵盖了多媒体播放、ActiveX控件使用、DLL动态加载、播放列表管理和用户界面交互等多个技术点,是VC++编程中一个典型的案例,对于学习和提升C++与Windows平台开发技能具有很好的实践价值。

    gdal2.3.1编译后的文件

    在这个“gdal2.3.1编译后的文件”中,我们主要关注的是GDAL 2.3.1版本的编译结果,它可能包含了库文件、头文件、动态链接库和静态链接库等,供开发者在自己的项目中使用。 在Windows环境下,使用Visual Studio 2017...

    解决error LNK2005 void __cdecl operator delete(void

    同时,良好的项目管理和库管理习惯也能避免许多这类问题的发生。通过细心排查和调试,通常可以找到问题的根源并解决`LNK2005`错误。在实际操作时,阅读错误消息、分析库依赖关系和理解C++编译链接过程都是必要的步骤...

Global site tag (gtag.js) - Google Analytics