编译可执行文件

本小节主要讲解本如何如何在 Windows 环境下使用 Visual Studio 2022、在 Linux环境(以 RedHat 为例),以及在 Windows 环境下使用 MinGW 编译一个可执行文件,并链接上一对应小节生成的 API 动态库以连接数据库。

Note: 这部分的工程存在于 API 源码中的 demo 文件夹内

Windows 环境下使用 Visual Studio 2022编译

  1. 编译方法 步骤中生成的 C++ API 动态库拷贝到 demo/lib 目录下。
  2. 在 PowerShell 中执行下述命令:
    cd path/to/api-cplusplus/demo
    mkdir build && cd build
    cmake .. -DCMAKE_BUILD_TYPE=Release
    cmake --build . --config Release 
  3. 生成的可执行文件 apiDemo.exe 在 demo\bin\Release 目录下。
  4. 将所依赖的动态库(DolphinDBAPI 动态库以及 OpenSSL 等依赖库)拷贝到可执行文件所在目录即可执行。

Windows 环境下使用 MinGW 编译

  1. 编译方法 中生成的C++ API 动态库拷贝到 demo/lib 目录下。
  2. 在 PowerShell 中执行下述命令:
    cd path/to/api-cplusplus/demo
    mkdir build && cd build
    cmake .. -DCMAKE_BUILD_TYPE=Release
    cmake --build . --config Release
  3. 生成的可执行文件 apiDemo.exe 在 demo\bin 目录下。
  4. 将所依赖的动态库(DolphinDBAPI 动态库以及 OpenSSL 等依赖库)拷贝到可执行文件所在目录即可执行。

Linux 环境下编译(以 RedHat 为例)

  1. 编译方法 中生成的 libDolphinDBAPI.so 拷贝到 demo/lib 目录下.
  2. 在终端中执行下述命令:
    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 路径。
  3. 生成的可执行文件 apiDemo 在 demo\bin 目录下。