生成静态库

视频参考:【虚幻4】【UE4】第三方库的使用及SQLite3集成到UE4(Win、Android、iOS三端)_哔哩哔哩_bilibili

文章参考:

第三方库 | 虚幻引擎文档 (unrealengine.com)

静态库(Static library,缩写为 LIB):编译时,全部加载。

动态库(Dynamic Link Library,缩写为 DLL):程序运行时,有选择的加载。

1生成静态库

1.1先下载源码,以SQLite为例。

SQLite Download Page

生成静态库

1.2创建VS桌面向导工程

生成静态库

1.3将文件复制到工程目录下

生成静态库

1.4添加到编译中

生成静态库

1.5编译生成静态库

生成静态库

1.6生成静态库文件

生成静态库

2.在UE4中使用静态库

动态库以模块的形式出现在UE中。两个地方可以放模块文件,项目和引擎安装目录,项目我没找到。。。就放引擎目录。路径: UE_4.26\Engine\Source\ThirdParty

2.1 新建文件夹,自定义名字。里面有两个文件夹,一个include和lib。一个放头文件,一个放库文件。头文件供外部进行函数调用,库文件是cpp的实现,保密,外部无法查看源代码。.cs的配置文件,建立与引擎的链接,使库可被引擎加载。

生成静态库

.cs文件下载: TestLib.txt – 蓝奏云

下载以后记得改后缀名。。。

2.2 代码解释

//自定义第三方库
using UnrealBuildTool;

//ModuleRules   模块类,继承它表明这个类是一个模块
//  修改1 TestLib     类名与文件夹名字对应
public class TestLib : ModuleRules
{

    //修改2 TestLib       我觉得应该是 构造函数
    public TestLib(ReadOnlyTargetRules Target) : base(Target)
    {
        //ModuleType.External 设置告知引擎不要查找(或编译)源代码。通过将列出的包含路径添加
        //到编译环境,设置相关宏并关联到给定静态库,其将使用在该文件中定义的其他设置。
        Type = ModuleType.External;

        //ModuleDirectory   这个应该是预定义常量,表示该文件的路径
        //获取该文件的路径
        string TestPath = ModuleDirectory;

        //添加include
        //include  文件在.cs文件同级目录的 include文件夹下
        PublicIncludePaths.Add(TestPath + "/include/");

        //添加.lib 文件     生成.lib时,有不同平台的版本
        //首先进行平台判断
        if (Target.Platform == UnrealTargetPlatform.Win64)
        {

            //lib   文件在.cs文件同级目录的 lib文件夹下
            PublicSystemLibraries.Add(TestPath + "/lib/Win64/cossdk.lib");
        }
    }
}

生成静态库

2.3 在程序中添加模块

生成静态库

编译,添加模块以后,一定要记得编译一下。。。

生成静态库

2.4 测试

如果添加文件名后,编译不报错即成功。还有就是使用函数时,会有只能提示。

生成静态库

3小技巧

程序默认索引很多目录,在这些目录下的文件可直接#include”文件名”,即可被程序链接。

生成静态库

Original: https://blog.csdn.net/qq_38153826/article/details/125359762
Author: 初中生学UE
Title: 生成静态库

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/815721/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球