【UE4】UE4内使用Sqlite数据库

写在前面。

系统环境:Win10 X64

引擎版本为:UE4.17.2

编译器版本为: VS2015Pro

因为项目需要数据库对一些数据进行管理和其他的操作,所以花了些时间研究了一下如何在UE4中使用Sqlite数据库。

围观了许多Blog和Answer,要么语焉不详,或者是版本太古老。

另外再吐槽一下官方文档,说是将Sqlite已经集成到引擎里了,一没看到源码,二没找到文档,简直坑。

具体思路是这样的

首先,不管是Sqlite也好,Android也好,FBX也好,其实都是第三方的Module。

其具体位置都在这里"Engine\Source\ThirdParty\",这里存放的是所有的第三方的Module

那如果按照第三方的Module引入,似乎就是可行的了。

在开始之前,请先看一下这几篇文档:

第一篇:

      详解UE4静态库与动态库的导入与使用

第二篇:
第三篇:
本篇是用的导入静态库.Lib的方法。从理论上来讲,导入动态库.Dll也是可行的,只是需要更改相应的代码。

下面开始具体的过程,我会写的尽量详细,供以后查阅使用。

Step 1:  下载相关源码

 1)S qlite源码官方下载地址是这里
2)下载Sqlite源码 <sqlite-amalgamation-xxxxxx.zip>

 3)下载Sqlite Dll库 <sqlite-dll-win64-x64-xxxxxxx.zip>

Step 2:  编译.Lib库

 1)将sqlite-dll-win64-x64-xxxxxx.zip解压到当前文件夹下
 2)运行Visual Studio 2005 Command Prompt命令行程序。
 i.打开VS2015>>选择工具>>Visual Studio命令提示
 ii.输入命令行
   
//移动到sqlite-dll-win64-x64-3220000文件夹下
//我把文件放在了桌面上,所以是这个地址,你需要将cd后面的命令行改成你解压文件的地址
>>cd C:\Users\用户名\Desktop\sqlite-dll-win64-x64-3220000

//编译.lib文件 注意如果不输入X64就会默认编译为X86,X大写
>>lib /def:sqlite3.def /machine:X64
 如下图

 这样就得到了sqlite3.lib和sqlite3.exp文件。其中,exp文件是生成的中间文件,不用管它。

现在我们有了**.lib和**.h文件(在sqlite-amalgamation-xxxxxx.zip内)。

Step 3:打开UE4安装文件夹

具体地址是:
..\Engine\Source\ThirdParty\Sqlite

Step 4:进入Sqlite文件夹

此时你会看到一个sqlite.tps文件孤零零的呆在那。
倘若你这个时候用VS打开UE4,你会发现在相同的路径下根本没有这个文件。

Step 5:创建Includes和Libs文件夹


Step 6:把.h和.c文件丢入Includes文件夹;把.lib丢入Libs文件夹

Includes

Libs


Step 7:创建Sqlite.build.cs文件并放在 "..\ThirdParty\Sqlite\" 下


Step 8:编辑Sqlite.build.cs

using UnrealBuildTool;
using System.IO;

public class Sqlite : ModuleRules
{
	 public Sqlite(TargetInfo Target)
	 {
         //表示第三方库
	     Type = ModuleType.External;
		 
         //第三方库新模块根目录目录路径你可以通过其他方式来获取路径
         //比如get { return Path.GetFullPath(Path.Combine(ModuleDirectory,"../../ThirdParty/"));} 
        string MyPath = UEBuildConfiguration.UEThirdPartySourceDirectory + "Sqlite/";
		
		
	 //包含的头文件路径,因为编译的库里面都是链接过的编译单元,
	 //可以认为编译单元是不包含头文件的,所以在之后的使用时还需要获取到头文件的声明信息
	     PublicIncludePaths.Add(MyPath + "Includes/");

	     if (Target.Platform == UnrealTargetPlatform.Win64)
	     {
		//第三方静态库的路径
	         PublicLibraryPaths.Add(MyPath + "Libs/");

		//第三方静态库的名称
	         PublicAdditionalLibraries.Add("sqlite3.lib");
	     }

	 }
}
 保存并关闭。

Step 9:打开UE4,并创建C++项目。


Step 10:打开VS,选择UE4项目,打开以下文件路径

Source\ThirdParty\
创建按照以下结构创建文件筛选器,并把相关文件丢到对应的位置。

编译引擎。

Step 11:打开新建的UE4工程,在“Source/项目名”下找到“项目名.Build.cs”文件


Step 12:增加几行代码

using System.IO;
...
//将新的第三方库的模块添加进来  
AddThirdPartyPrivateStaticDependencies(Target, "Sqlite");

Step 13:添加依赖项

右键项目属性>> NMake>>包含搜索路径>>添加库的目录位置>>确定>>应用

Step 14:在项目工程类里面#include你的库里面的头文件并测试


如果按照步骤,此时应该能正确编译并运行。

需要注意的是:
1.如果需要新建一个类,要注意你的类的 .cpp 文件的第一个包含 #include “项目工程名 .h ”应该是项目工程名的头文件。否则会编译失败。
2.发现有不识别的你所包含的头文件的错误,那就重新确认一下Module模块的名称与路径,肯定是这里出了问题。

有啥问题或者改进欢迎交流。
搞完,收工~













  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值