https://github.com/TooTallNate/node-gyp/wiki/Linking-OpenSSL
https://github.com/joyent/node/issues/3915
http://serverfault.com/questions/338092/how-can-i-build-node-js-using-static-libssl-and-crypto-libraries
https://github.com/robhawkes/node-extension/issues/1
通过搜索, 我们发现, 原来Nodejs自己也使用了Openssl 库, 推测nodejs自己的crypto模块也是使用Openssl lib实现的. 这点从Nodejs的源码中就能发现, 它包含了最新的Openssl的全部源码. 其中写上面第一篇文章:
https://github.com/TooTallNate/node-gyp/wiki/Linking-to-OpenSSL
的那个帅哥是Nodejs的开发人员. 基本结论: Nodejs 自己使用了Openssl 在Nodejs 0.6之前, Nodejs是动态链接到 Openssl 库的. 而之后的版本都是静态链接的. 这时发现 Node 那边已经回复我的bug了:
https://github.com/joyent/node/issues/8026
Node 解释的原因: Node 自己编译之后, 把自己没用到的符号清除, 所以我们在运行时就找不到符号了. 于是他们把这bug 修掉了. 保留了全部符号. 这导致 Node 的体积大了 400k.