编译可执行文件

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

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

Windows 环境下使用 Visual Studio 2022编译

  1. 编译方法 步骤中生成的 DolphinDBAPI.lib 拷贝到 demo/lib 目录下。
  2. 在 PowerShell 中执行下述命令:
    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
    cmake 各项参数含义与编译方法 中的相同。
  3. 生成的可执行文件 apiDemo.exe 在 demo\bin\Release 目录下。
  4. 将所依赖的动态库(DolphinDBAPI.dll libeay32MD.dll ssleay32MD.dll)拷贝到 .exe 文件同目录下即可执行。其中libeay32MD.dll和ssleay32MD.dll是openssl的动态库,存储在openssl路径下的bin目录中。

Windows 环境下使用 MinGW 编译

  1. 编译方法 中生成的 libDolphinDBAPI.dll 拷贝到 demo/lib 目录下。
  2. 在 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 各项参数含义与编译方法中的相同。

  3. 生成的可执行文件 apiDemo.exe 在 demo\bin 目录下。
  4. 将所依赖的动态库(libDolphinDBAPI.dll,libeay32.dll,ssleay32.dll)拷贝到 .exe文件同目录下即可执行。其中libeay32.dll和ssleay32.dll是openssl的动态库,存储在openssl路径下的bin目录中。

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 目录下。