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.txt
或 conanfile.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
现在您可以使用 C++ 封装层的接口进行开发了
int main()
{
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