编译可执行文件
本小节主要讲解本如何如何在 Windows 环境下使用 Visual Studio 2022、在 Linux环境(以 RedHat 为例),以及在 Windows 环境下使用 MinGW 编译一个可执行文件,并链接上一对应小节生成的 API 动态库以连接数据库。
Note: 这部分的工程存在于 API 源码中的 demo 文件夹内
Windows 环境下使用 Visual Studio 2022编译
- 将 编译方法 步骤中生成的 DolphinDBAPI.lib 拷贝到 demo/lib 目录下。
- 在 PowerShell 中执行下述命令:
cmake 各项参数含义与编译方法 中的相同。cd path/to/api-cplusplus/demo 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
- 生成的可执行文件 apiDemo.exe 在 demo\bin\Release 目录下。
- 将所依赖的动态库(DolphinDBAPI.dll libeay32MD.dll ssleay32MD.dll)拷贝到 .exe 文件同目录下即可执行。其中libeay32MD.dll和ssleay32MD.dll是openssl的动态库,存储在openssl路径下的bin目录中。
Windows 环境下使用 MinGW 编译
- 将 编译方法 中生成的 libDolphinDBAPI.dll 拷贝到 demo/lib 目录下。
- 在 PowerShell 中执行下述命令:
cd path/to/api-cplusplus/demo 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 各项参数含义与编译方法中的相同。
- 生成的可执行文件 apiDemo.exe 在 demo\bin 目录下。
- 将所依赖的动态库(libDolphinDBAPI.dll,libeay32.dll,ssleay32.dll)拷贝到 .exe文件同目录下即可执行。其中libeay32.dll和ssleay32.dll是openssl的动态库,存储在openssl路径下的bin目录中。
Linux 环境下编译(以 RedHat 为例)
- 将 编译方法 中生成的 libDolphinDBAPI.so 拷贝到 demo/lib 目录下.
- 在终端中执行下述命令:
cd path/to/api-cplusplus/demo mkdir build && cd build cmake .. -DABI=0 -DUSE_OPENSSL=1 -DOPENSSL_PATH=/home/openssl/ cmake --build .
cmake各项参数说明如下所示,注意 ABI 的值必须相同:
- -DABI=0:用来指定编译时_GLIBCXX_USE_CXX11_ABI的值,可以设置为1或者0。
- -DUSE_OPENSSL=1: 如果想使用 openssl 来加密 AP I和 DolphinDB 之间的通信,则必须指定该参数。指定后编译API动态库时会去链接 ssl 以及 crypto 动态库。
- -DOPENSSL_PATH=/path/to/openssl:如果系统中没有安装 openssl,则可以通过该参数来指定 OPENSSL 路径。
- 生成的可执行文件 apiDemo 在 demo\bin 目录下。