NIM 跨平台 C++ SDK
载入中...
搜索中...
未找到
V2 API 接入指引

SDK 目录结构及主要文件介绍

├─bin
├─doxygen
├─include
├─lib
├─syslib
└─wrapper
  • bin/lib 目录存放 NIM SDK 的动态库文件, 在您发布时请打包使用到的模块, .lib后缀为 Windows 下的动态库符号链接文件
    • (lib)nim(.dll|.so|.dylib): 即时通讯, 含圈组
    • (lib)nim_chatroom(.dll|.so|.dylib): 聊天室
    • (lib)h_available(.dll|.so|.dylib): IM 基础库, 被以上两个模块所依赖
    • node-nim.node: NIM SDK Node 封装层, 用于 Electron 以及 Node.js 环境下的接入, 其他情况可去除
    • 其他如 msvcp120.dll、msvcr120.dll 等(系统)依赖
  • doxygen 用于生成文档的 doxygen 配置文件,您可以在该目录下通过 doxygen 生成本地文档
  • include 目录存放了 NIM SDK 的导出头文件
  • syslib 目录存放了 NIM SDK 的系统依赖库,仅在 Linux 下使用
  • wrapper 如果您只对接 V2 接口可忽略该目录

Conan 接入

添加 yunxin 的 conan 仓库远端地址:

conan remote add yunxin https://gitlab.com/api/v4/projects/47777150/packages/conan

添加完成后通过命令 conan search nim -r yunxin 查看可依赖的版本列表:

➜ ~ conan search nim -r yunxin
Existing package recipes:
....
nim/10.5.0@yunxin/stable
....

在您的 conanfile.txtconanfile.py 的 requirements 下添加依赖后执行 conan install 即可使用。

CMake 接入

如果您的原工程是基于 CMake 进行管理,可参考以下示例代码添加 NIM SDK 的依赖

示例:

# CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(nim_demo)
add_executable(${PROJECT_NAME} main.cpp)
# 添加 include 目录到头文件搜索路径
target_include_directories(${PROJECT_NAME} PRIVATE
${CMAKE_CURRENT_LIST_DIR}/include
)
# 添加 lib 目录到链接库搜索路径
target_link_directories(${PROJECT_NAME} PRIVATE
${CMAKE_CURRENT_LIST_DIR}/lib
)
# 添加链接库
target_link_libraries(${PROJECT_NAME} PRIVATE
)
聊天室
Definition: nim_chatroom_def_include.h:17
namespace nim

现在您可以使用 C++ 封装层的接口进行开发了

#include "v2_nim_api.hpp"
using namespace v2;
int main()
{
V2NIMInitOption initOption;
initOption.appkey = "your appkey";
V2NIMClient::get().init(initOption);
V2NIMClient::get().uninit();
}
Definition: v2_nim_ai_service.hpp:4
Definition: v2_nim_def_struct.hpp:121
nstd::string appkey
app key
Definition: v2_nim_def_struct.hpp:123

传统方式接入

include 目录添加到头文件搜索路径中

  • Visual Studio
    右键项目 -> 属性 -> C/C++ -> 常规 -> 附加包含目录
  • Xcode
    左侧导航栏 -> 项目 -> Build Settings -> 搜索 Header Search Pathss
  • Qt Creator
    # .pro 文件
    INCLUDEPATH += include

将库文件添加到您项目的链接库中

  • Visual Studio
    • 右键项目 -> 链接器 -> 常规, 右侧的“附加库目录”中添加 lib 为库文件搜索路径
    • 右键项目 -> 属性 -> 链接器 -> 输入 -> 附加依赖项添加用到的静态库名,
      如 nim.lib, nim_chatroom.lib
  • Xcode
    • 左侧导航栏 -> 项目 -> Build Settings -> 搜索 Library Search Paths
    • 左侧导航栏 -> 项目 -> Build Phases -> Link Binary With Libraries 添加用到的静态库名,如 libnim.dylib, libnim_chatroom.dylib
  • Qt Creator
    # .pro 文件
    LIBS += -Llib -lnim -lnim_chatroom

运行时依赖

NIM 动态库依赖

  • Windows
    bin 目录中用到的动态库文件拷贝到可执行文件所在目录
  • macOS
    lib 目录中用到的动态库文件拷贝到可执行文件的 runpath 目录中,对于 app bundle 来说一般为 Contents/Frameworks 目录,即将 runpath 设置为 @executable_path/../Frameworks
  • Linux
    lib 目录中用到的动态库文件拷贝到可执行文件的 rpath 目录中,设置 rpath 为 $ORIGIN 表示可执行文件所在目录

系统依赖

  • Windows
    在 Windows 下 SDK 使用 VS2017 及其工具链进行编译,在您的应用部署前需要将 VS2017 运行时库安装到目标系统中或将依赖文件存放到执行程序可以搜索到的路径下。最新的 Visual Studio 2017 运行时库可以从微软官方网站下载
  • macOS
    最低系统版本要求 macOS 10.13
  • Linux
    最低 glibc 版本要求 2.23