编译 API 动态库
本小节讲解如何在 Windows 环境下使用 Visual Studio 2022、在 Linux 环境(以 RedHat 为例),以及在 Windows 环境下使用 MinGW 编译出 API 动态库。
Windows 环境下使用 Visual Studio 2022编译
环境准备
-
安装软件 Visual Studio 2022,Git,CMake。
-
下载 OpenSSL 库。本文中的下载目录是 D:/temp/openssl-1.0.2l-vs2017。
代码准备
在 Gitee 的 api-cplusplus项目中下载代码,并切换至预期分支。以main分支为例,在 Git Bash 中执行如下命令:
git clone git@gitee.com:dolphindb/api-cplusplus.git
git checkout -b main origin/main
编译方法
在 PowerShell 中执行如下命令,即可成功编译出 DolphinDBAPI.dll 和 DolphinDBAPI.lib:
cd path/to/api-cplusplus
mkdir build && cd build
cmake .. -G "Visual Studio 17 2022" -A x64 -DUSE_OPENSSL=1 -DOPENSSL_PATH=D:/temp/openssl-1.0.2l-vs2017 -DCMAKE_CONFIGURATION_TYPES="Release;Debug"
cmake --build . --config Release
cmake 参数说明:
-
-G:用来指定编译器。如果安装为其它版本的 Visual Studio,则此处须对应修改。
-
-A:x64指定生成64位的动态库,x86指定生成32位的动态库。
-
-DUSE_OPENSSL=1:如果想使用 openssl 来加密 API 和 DolphinDB 之间的通信,则必须指定该参数。指定后编译 API 动态库时会去链接 SSL 以及 crypto 动态库。
-
-DOPENSSL_PATH=/path/to/openssl:如果系统中没有安装 openssl,则可以通过该参数来指定 OPENSSL 路径。
-
-DCMAKE_CONFIGURATION_TYPES="Release;Debug":生成的 Visual Studio 项目文件支持编译 Release 或 Debug 类型的动态库。
-
--config Release:生成 Release 类型的目标文件,也可以改为 Debug。
Windows 环境下使用 MinGW 编译
环境准备
-
安装软件 MinGW,Git,CMake。
-
OpenSSL 库使用的是 API 源码中 lib 目录下的 openssl-1.0.2u。
代码准备
在 Gitee 的 api-cplusplus项目中下载代码,并切换至预期分支。以 main 分支为例,在 Git Bash 中执行如下命令:
git clone git@gitee.com:dolphindb/api-cplusplus.git
git checkout -b main origin/main
编译方法
在 Power Shell 中执行如下命令,即可成功编译出 libDolphinDBAPI.dll:
cd path/to/api-cplusplus
mkdir build && cd build
cmake .. -G "MinGW Makefiles" -DUSE_OPENSSL=1 -DOPENSSL_PATH=D:/workspace/testCode/api-cplusplus/lib/openssl-1.0.2u/openssl-1.0.2u/static
cmake --build .
cmake 参数说明:
-
-G:用来指定编译器。
-
-DUSE_OPENSSL=1: 如果想使用 openssl 来加密 API 和 DolphinDB 之间的通信,则必须指定该参数。指定后编译API动态库时会去链接 ssl 以及 crypto 动态库。
-
-DOPENSSL_PATH=/path/to/openssl:如果系统中没有安装 openssl,则可以通过该参数来指定 OPENSSL 路径。
Linux 环境下编译(以 RedHat 为例)
环境准备
-
安装 gcc/g++(version >= 4.8.5),Git,CMake。
-
安装Openssl-devel 以及 Uuid-devel。
yum install openssl-devel yum install libuuid-devel
代码准备
在 Gitee 的 api-cplusplus项目中下载代码,并切换至预期分支。以 main 分支为例,在终端中执行如下命令:
git clone git@gitee.com:dolphindb/api-cplusplus.git
git checkout -b main origin/main
编译方法
在终端中执行如下命令,即可成功编译出 libDolphinDBAPI.so:
cd path/to/api-cplusplus
mkdir build && cd build
cmake .. -DABI=0 -DUUID_PATH=/home/uuid/ -DUSE_OPENSSL=1 -DOPENSSL_PATH=/home/openssl/
make -j4
cmake 参数说明:
-
-DABI=0:用来指定编译时 _GLIBCXX_USE_CXX11_ABI 的值,可以设置为1或者0。
-
-DUUID_PATH=/path/to/uuid:如果系统中没有安装 uuid,则可以通过该参数来指定UUID路径,编译时会在。${UUID_PATH}/include 目录下寻找头文件,在${UUID_PATH}/lib 目录下寻找 uuid 库。
-
-DUSE_OPENSSL=1:如果想使用 openssl 来加密 API 和 DolphinDB 之间的通信,则必须指定该参数。指定后编译API动态库时会去链接 ssl 以及 crypto 动态库。
-
-DOPENSSL_PATH=/path/to/openssl:如果系统中没有安装 openssl,则可以通过该参数来指定 OPENSSL 路径。