nodejs调用C++动态链接库

nodejs调用C++动态链接库,第1张

ffi的全称是Foreign Function Interface,该项目生来就是解决nodejs本地调用问题的。在我们使用nodejs调用东来链接库时候,最繁琐容易出问题的就是配置环境阶段。下边我们就先分别看一下windows和linux下是如何安袭知仿装的。

1 安装node 我node版本使用的8.9.0(高版本的测试使用过,但是没有成功)

如果你有其他项目必须使用拍纤高版本的node,可以使用nvm来管理node的版本。

2 安装

如果这两个都安装成功了,再去安装node-ffi就没有什么问题了。

1.和windows一样同样使用的8.9.0的版本。测试过高版本,没有成功过。

2.安装npm install -g node-gyp ,需要依赖python2.7

3.在linux下安装时需要注意权限问题

安装项目下的所有模块

npm 出于安全考虑不支持以 root 用户运行,即使你用 root 用户身份运行了,npm 会自动转成一个叫 nobody 的用户来运行,而这个用户几乎没有任何权限。这样的话如果你脚本里有一些需要权限的 *** 作,比如写文件(尤其是写 /root/.node-gyp),就会崩掉了。

为了避免这种情况,要么按照 npm 的规矩来,专门建一个用于运行 npm 的高权限用户;猛冲要么加 --unsafe-perm 参数,这样就不会切换到 nobody 上,运行时是哪个用户就是哪个用户,即使是 root。

4 安装完成后,项目放到了/home 目录下,编写项目保存时候总是提示,用户权限不足,就做了如下设置

1.引入ffi等模块

详细的使用方法,可查看 https://github.com/node-ffi/node-ffi/wiki/Node-FFI-Tutorial

一、添加附加包含目录

      法1:-I path(path为头文件路径

   启模脊   法2:将头文件拷贝到 /usr/local/码明include中

      相当于VS中添加包含路径。

二、添加依赖库

       法1,编译阶段,g++编译器编译:

       -L path –lcaffe(path为附加库目录路径;-l指定附加依赖项,比如-lcaffe表示附加libcaffe.so动悄渗态库文件)。

执行阶段,在工作目录或环境变量中搜索dll文件:

       添加环境变量:

2.1 /etc/ld.so.conf 文件中方法:

添加库目录,使其成为共享库:

2.1.1、 打开文件:sudo gedit /etc/ld.so.conf

2.1.2、在文件中添加路径(如libnnpack.so的路径)

2.1.2、使其生效:sudo ldconfig

2.2     export方法,参考:http://blog.csdn.net/xzzppp/article/details/53305120

VS中添加附加库目录路径和附加依赖项,分别如下图所示:

法2,在编译阶段直接指定: path/libcaffe.so(path为附加库目录路径,libcaffe.so为动态库,在执行阶段可以直接运行)

法3,, Linux动态库的默认搜索路径是/lib和/usr/lib,将动态库拷贝到这两个文件夹下面。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11982224.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存