EJDB2是根据MIT许可发布的可嵌入JSON数据库引擎。 http://ejdb.org
因为EJDB2使用C11标准,msvc 不能很好的编译,且它的存储层libiowow库大量使用了 posix 接口实现,所以编译的过程需要做一定的处理。
编译前准备
1、下载并安装编译环境
这里采用 msys2 + mingw64 作为编译环境。
安装完成之后,修改 pacman 镜像源地址,参考 MSYS2 镜像使用帮助 进行操作。可执行命令pacman -Syu进行基础软件更新,也可以不更新。
执行命令pacman -S mingw-w64-x86_64-gcc安装编译器等。或者安装完整的工具链软件mingw-w64-x86_64-toolchain。
执行名称 pacman -S make cmake安装必要的工具软件命令工具。
安装完成之后,需要打开msys2安装目录下的 mingw64.exe 开启新的命令行窗口。
注意这里安装的是 mingw-w64-x86_64-gcc 而不是安装 msys2 的gcc。这两个的区别是 使用 mingw-gcc 编译的目标文件是windows原生的,而使用 msys2-gcc 编译的目标文件,依赖于 msys-2.0.dll 提供的虚拟 POSIX 环境,用于给 VC 进行调用的时候会出现错误。
2、下载源代码
首先下载 ejdb2 源码,直接使用git克隆仓库。
下载 iowow 源码。这里也可以不下载,在执行 cmake 的时候可以自动下载。
# 下载源码文件
git clone https://github.com/Softmotions/ejdb.git
git clone https://github.com/Softmotions/iowow.git
# 打包 iowow 源码为 zip 包
cd iowow && git archive --output ../iowow.zip master && cd ..
生成编译脚本
# 创建构建目录并进入
mkdir build-win && cd build-win
# 拷贝下载好的 iowow.zip 到构建目录下的 src 目录
mkdir src && cp ../../iowow.zip src/
# 执行 cmake ,生成 Makefile
# -DCMAKE_C_COMPILER=gcc 指定编译器
# -DCMAKE_