5.2.1 动态库集成

1. so方式

我们提供了 libaTrustSDK.so 供用户自行调用,头文件位于 API_include

1.包含头文件

头文件位于 API_include

└── API_include
    ├── atrust_code.h
    └── atrust_sync_sdk.h

2.编译链接libaTrustSDK.so

如遇到C++符号版本未定义时,请在编译时指定链接/usr/share/sangfor/aTrust/resources/lib/libstdc++.so.6 c++_sym.png

3.设置动态库搜索路径

请确保你的程序能够在运行时正确找到libaTrustSDK.so以及上面提到的libstdc++.so.6。 你可以选择设置如下方式:

  • LD_LIBRARY_PATH,设置该环境变量会按照该变量指定的路径去查找依赖库
  • rpath,rpath是修改了文件的头部,将搜索路径写到了头部,会改变文件md5

特别注意:设置的LD_LIBRARY_PATH需要能同时找到libaTrustSDK.so以及/usr/share/sangfor/aTrust/resources/lib/libstdc++.so.6

2.node插件方式

1.在当前example目录下执行npm install example_npm_install.png

2.将atrust移动到npm install生成的node_modules内 copy.png

3.在atrust目录内执行npm install进行node编译

考虑APP集成方使用的node版本存在差异,可以先尝试使用预先编译好的atrust.node, 如遇到node版本问题,则提供了atrust.node模块的源码,可以结合自身的实际环境重新编译atrust.node库。 由于atrust.node会需要使用到libaTrustSDK.so需要根据集成方libaTrustSDK.so的实际存放路径去指定atrust.node的搜索路径, 可以通过设置环境变量LD_LIBRARY_PATH来指定,若出现c++符号版本未定义则参考上面动态库解决方法

4.node使用方法参考Demo

需要注意的是在传递 force参数时一定要指定为true或false,不能为0或1

5.2.2 静态库集成

静态库集成和上面动态库集成相似

Tips:

  1. 如果出现头文件无法找到问题,请确认CMake是否指定了头文件搜索路径,g++是否指定了-I选项
  2. 如果出现符号找不到,请确认是否设置了动态库搜索路径
  3. 如果出现c++符号版本未定义,请确认是否链接了/usr/share/sangfor/aTrust/resources/lib/libstdc++.so.6

5.2.3 node库方式集成

对于使用electron开发的桌面应用,需要集成CSSDK, 使用node.js加载C接口库不好直接调用和使用其中的指针参数。针对这种场景有其他客户定制过node版本的CSSDK接口库,可以单独联系获取对应的node版本SDK接口库。

深信服科技 all right reserved,powered by Gitbook本文档更新于: 2024-07-25 14:08

results matching ""

    No results matching ""