位置: 编程技术 - 正文
推荐整理分享如何正确使用Nodejs 的 c++ module 链接到 OpenSSL(如何正确使用农药芸苔素),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:如何正确使用农药助剂,如何正确使用农药,如何正确使用浓盐酸,如何正确使用no way,如何正确使用no way,如何正确使用no way,如何正确使用农药,如何正确使用农家肥,内容如对您有帮助,希望把文章链接给更多的朋友!
事情的起因是这样的, 因为某些原因, 最近在写 Nodejs 的 c++ module, 然后在js这边调用。 网络通信自然离不开ssl, 于是需要链接到Openssl的库。
我们本来的期望是,需要用户安装有Openssl的运行库, 然后我们的c++ module 动态链接到Openssl的so库上来运行。
起初一切看起来还不错,直到我们发现这个openssl的函数不能工作:
PKCS7_sign()PKCS7_sign ( )我们发现:
如果我们的 c++ 模块与Openssl库动态链接的话, 编译都没问题. 但是运行会出现: PKCS7_sign 符号无法找到的错误.如果我们的 c++ 模块与Openssl库静态链接的话, 编译也没问题, 但是运行时,调用这个函数的地方没有效果, 这个函数返回值是 0. 按照文档表示出现错误, 但是用 Openssl的函数 ERR_get_error 获取错误码也是0. 表示没有错误码.在linux上是这样, 那在Mac上呢 用Mac试了一下, 发现Mac没有问题. 于是,想到这可能是Nodejs的一个bug. 然后就去 Nodejs 给它报了一个bug: google上搜索了 nodejs linking to openssl 类似的关键字.
找到这样几篇文章:
我们发现, 原来Nodejs自己也使用了Openssl 库, 推测nodejs自己的crypto模块也是使用Openssl lib实现的. 这点从Nodejs的源码中就能发现, 它包含了最新的Openssl的全部源码.
其中写上面第一篇文章: 的那个帅哥是Nodejs的开发人员.
基本结论:
Nodejs 自己使用了Openssl在Nodejs 0.6之前, Nodejs是动态链接到 Openssl 库的. 而之后的版本都是静态链接的.这时发现 Node 那边已经回复我的bug了: 解释的原因:
Node 自己编译之后, 把自己没用到的符号清除, 所以我们在运行时就找不到符号了. 于是他们把这bug 修掉了. 保留了全部符号. 这导致 Node 的体积大了 k.
感谢Node的快速回复, 不得不佩服Node的活跃程度. 赞.
Node.js插件的正确编写方式 Node.js在利用JavaScript编写后端方面效果拔群,值得我们多加尝试。不过如果大家需要一些无法直接使用的功能甚至是根本无从实现的模块使用,那么能
Nodejs+express+html5 实现拖拽上传 一、前言文件上传是一个比较常见的功能,传统的选择方式的上传比较麻烦,需要先点击上传按钮,然后再找到文件的路径,然后上传。给用户体验带
Node.js入门教程:在windows和Linux上安装配置Node.js图文教程 本章节我们将向大家介绍在window和Linux上安装Node.js的方法。本安装教程以Node.jsv0..版本为例。Node.js安装包及源码下载地址为:
标签: 如何正确使用农药芸苔素
本文链接地址:https://www.jiuchutong.com/biancheng/370847.html 转载请保留说明!友情链接: 武汉网站建设