MindConnect Library – 针对 Windows 的入门指南¶
先决条件¶
- 已在您的机器上安装**Universal Windows Platform development** 和 Desktop development with C++ 工作量的 Visual Studio 2015。
准备¶
该章节描述如何安装构建 MindConnect Library 所需的工具和库。
信息
这些说明基于 CMake 3.14.4。如果使用 Visual Studio 不同的版本,所需的工具和库的版本也许会有改变。
安装 Perl¶
- 从 http://strawberryperl.com 安装 Strawberry Perl。
- 运行安装。
-
打开新的命令行窗口并输入以下命令:
perl –version
输出应该和下图所示一样。
信息
命令行窗口必须在安装*之后*打开。
安装 CMake¶
- 从https://cmake.org/download/中下载 CMake 版本3.5 或更高版本。
- Use the installer and make sure to add CMake to the system PATH.
-
打开新的命令行窗口并输入以下命令:
cmake –-version
输出应该和下图所示一样。
信息
命令行窗口必须在安装*之后*打开。
编译 OpenSSL¶
- 从https://github.com/openssl/openssl/releases中下载
openssl-1.0.2q.zip
(或更高版本)。 - 将下载的文件解压到您选择的
{OpenSSL_dir}
文件夹中。 -
打开 VS2015 x64 原生工具命令提示符。
提示
如果您没有找到这个特别的原生命令提示符,打开 Visual Studio Installer 并确保您已经为 Visual Studio 2015 安装 Visual C++ 功能。
-
更改为
{OpenSSL_dir}
并配置编译器以及安装到 OpenSSL 的路径。```cmd tab="Template" cd {OpenSSL_dir} mkdir build perl Configure VC-WIN64A --prefix={OpenSSL_dir}\build\openssl --openssldir={OpenSSL_dir}\build\ssl
```cmd tab="Sample Path" cd C:\MCL\openssl-OpenSSL_1_0_2q mkdir build perl Configure VC-WIN64A --prefix=C:\MCL\openssl-OpenSSL_1_0_2q\build\openssl --openssldir=C:\MCL\openssl-OpenSSL_1_0_2q\build\ssl
-
构建生成文件。
ms\do_win64a
-
构建库并将其安装到
--prefix
参数给出的目录中。nmake -f ms\ntdll.mak nmake -f ms\ntdll.mak install
编译 libcurl¶
- 从https://curl.haxx.se/download/中下载
curl-7.52.1.zip
(或更高版本)。 - 将下载的文件解压到您选择的
{curl_dir}
文件夹中。 - 打开 VS2015 x64 原生工具命令提示符的新窗口。
-
准备在
{curl_dir}
中的构建目录并且打开它。```cmd tab="Template" cd {curl_dir} mkdir build cd build
```cmd tab="Sample Path" cd C:\curl-7.52.1 mkdir build cd build
-
使用 Visual Studio 2015 目录
{VS_dir}
,设置到 OpenSSL 的路径和 Visual Studio 2015 环境变量。```cmd tab="Template" set PATH=%PATH%;{OpenSSL_dir}\build\openssl "{VS_dir}\VC\vcvarsall.bat"
```cmd tab="Sample Path" set PATH=%PATH%;C:\MCL\openssl-OpenSSL_1_0_2q\build\openssl "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"
-
使用 libcurl 目录替换
{curl_dir}
来构建 libcurl。cmake .. -G"Visual Studio 14 2015 Win64" -DHTTP_ONLY=ON -DCMAKE_USE_OPENSSL=ON -DCMAKE_INSTALL_PREFIX={curl_dir}\build\install cmake --build . --target install --config Release
构建 MindConnect Library¶
- 从 SIOS 中下载 MindConnect Library。
- 将下载的文件解压到您选择的
{MCL_build_dir}
文件夹中。 - 打开 VS2015 x64 原生工具命令提示符的新窗口。
-
复制
{curl_dir}\build\install
和{OpenSSL_dir}\build\openssl
的内容到{MCL_build_dir}
。cd {MCL_build_dir} Xcopy /S {curl_dir}\build\install {MCL_build_dir}\curl\ Xcopy /S {OpenSSL_dir}\build\openssl {MCL_build_dir}\openssl\
-
移动文件
libeay32.dll
和ssleay32.dll
到{MCL_build_dir}\openssl\lib
。move {MCL_build_dir}\openssl\bin\libeay32.dll {MCL_build_dir}\openssl\lib\ move {MCL_build_dir}\openssl\bin\ssleay32.dll {MCL_build_dir}\openssl\lib\
-
复制两个移动了的文件到
{MCL_build_dir}\curl\bin\
。Xcopy {MCL_build_dir}\openssl\lib\libeay32.dll {MCL_build_dir}\curl\bin\ Xcopy {MCL_build_dir}\openssl\lib\ssleay32.dll {MCL_build_dir}\curl\bin\
-
删除
{MCL_build_dir}\openssl\bin
。rmdir /Q /S {MCL_build_dir}\openssl\bin
-
在带有以下内容的
{MCL_build_dir}
中创建文件build_mcl.bat
。用提取的 MindConnet Library 文件的文件夹名称替换{MCL_folder}
。rem Set directory variables set MCL_SOURCE_DIR=%~dp0\{MCL_folder} set CMAKE_DIR=%~dp0\cmake set OPENSSL_DIR=%~dp0\openssl set CURL_DIR=%~dp0\curl set BUILD_DIR=%~dp0\cmake_vs_build rem Create build directory if it doesn't exist if not exist %BUILD_DIR% mkdir %BUILD_DIR% cd %BUILD_DIR% rem Clear build directory content for /F "delims=" %%i in ('dir /b') do (rmdir "%%i" /s/q || del "%%i" /s/q) rem Add to path set PATH=%PATH%;%CURL_DIR%;%CMAKE_DIR%;%OPENSSL_DIR% rem Generate a Visual Studio solution cmake -G"Visual Studio 14 2015 Win64" -DCMAKE_BUILD_TYPE=Release -DMCL_STATICLIB=OFF -DMCL_USE_LIBCURL=ON -DMCL_USE_OPENSSL=ON -DMCL_CREATE_DOXYGEN=OFF -DMCL_TESTING=OFF -DMCL_LOG_UTIL_LEVEL=255 %MCL_SOURCE_DIR% cmake --build . --target mc
-
运行批量过程。
build_mcl.bat
MindConnect Libraries
mcl.lib
和mc.dll
以及 OpenSSL 和 libcurl 的副本在{MCL_build_dir}\cmake_vs_build\build\Release
中创建。
构建自定义代理应用¶
- 打开 MindConnect Library Visual Studio 2015。
- 创建名为 CustomAgent 的新解决方案并添加 customAgent.c 到项目中。
- 使用 CTRL+ALT+L 打开 isual Studion 2015 的 Solution Explorer。
- 在 Solution Explorer 中 右键点击项目名称并选择**属性**。
- 设置**配置** 为 "所有配置", **平台**为 "x64"。
- 在 C/C++ 配置属性中打开**通用**选项卡。
- 将提取的 MindConnect Library 文件夹的
include
目录添加到 Additional Include Directories。 - 在**链接器**配置属性中打开**通用**选项卡。
- 将提取的 MindConnect Library 文件夹的
lib
目录添加到 Additional Library Directories。 - 在**连接器**配置属性中打开**输入**选项卡。
- 添加
mc.lib
到 Additional Dependencies。 - 复制 MindConnect Library
Release
文件夹中的文件libcurl.dll
、libeay32.dll
、ssleay32.dll
和mc.dll
到带有自定义代理执行文件的目录。 - 构建解决方案。
用自定义实现替换 MindConnect Library 模块¶
下表列出 MindConnect Library 项目的模块,这些模块可以用自定义实现替换:
模块 | 描述 |
---|---|
memory.h | 实现与内存相关的函数。如果没有另外指定,使用标准库中的 alloc 、calloc 、realloc 和 free 。 |
random.h | 使用标准库中的随机生成器。 |
security.h | 提供几个函数,这些函数实现从 OpenSSL 的密码库生成例如 SHA256、MD5、RSA 密钥等计算。 |
http_client.h | 使用 libcurl 发送到 MindSphere 的 HTTP 请求。自定义实现必须满足与 TLS v1.2 相关的相同安全需求。MindSphere 的证书必须在 SSL 握手过程中经过验证。 |
要替换模块,保持原始 *.h
文件并用相同名称替换该实现文件 *.c
。