ajs*_*sie 44 javascript ubuntu ssl openssl node.js
我已经安装了libssl-dev和openssl,但是当我安装node.js时我得到了这个:
> ./configure && make && make install
Checking for program g++ or c++ : /usr/bin/g++
Checking for program cpp : /usr/bin/cpp
Checking for program ar : /usr/bin/ar
Checking for program ranlib : /usr/bin/ranlib
Checking for g++ : ok
Checking for program gcc or cc : /usr/bin/gcc
Checking for gcc : ok
Checking for library dl : yes
Checking for openssl : not found
Checking for function SSL_library_init : yes
Checking for header openssl/crypto.h : yes
Checking for library rt : yes
Checking for fdatasync(2) with c++ : yes
Run Code Online (Sandbox Code Playgroud)
找不到Openssl.但节点已成功安装.
为什么没有找到openssl?有人有同样的问题吗?
小智 49
@weng:我遇到了同样的问题.解决方案很简单:sudo apt-get install pkg-config :)
Con*_*ler 35
这不是一个编程问题.仍然...
安装程序以两种方式检查OpenSSL支持.第一次检查失败了,第二次检查成功了.对我来说,第一次检查成功(见下文).无论哪种方式都有效.
这是我建造它时得到的:
$ sudo apt-get install libssl-dev
$ ./configure
Checking for program g++ or c++ : /usr/bin/g++
Checking for program cpp : /usr/bin/cpp
Checking for program ar : /usr/bin/ar
Checking for program ranlib : /usr/bin/ranlib
Checking for g++ : ok
Checking for program gcc or cc : /usr/bin/gcc
Checking for gcc : ok
Checking for library dl : yes
Checking for openssl : yes
Checking for library rt : yes
<---snip--->
Run Code Online (Sandbox Code Playgroud)
假设您从http://nodejs.org/下载了node.js v0.2.3,配置主要由文件wscript中的waf完成.
相关的路线是:
if not Options.options.without_ssl:
if conf.check_cfg(package='openssl',
args='--cflags --libs',
uselib_store='OPENSSL'):
Options.options.use_openssl = conf.env["USE_OPENSSL"] = True
conf.env.append_value("CPPFLAGS", "-DHAVE_OPENSSL=1")
else:
libssl = conf.check_cc(lib='ssl',
header_name='openssl/ssl.h',
function_name='SSL_library_init',
libpath=['/usr/lib', '/usr/local/lib', '/opt/local/lib', '/usr/sfw/lib'],
uselib_store='OPENSSL')
libcrypto = conf.check_cc(lib='crypto',
header_name='openssl/crypto.h',
uselib_store='OPENSSL')
Run Code Online (Sandbox Code Playgroud)
第一部分很简单.它运行pkgconfig.这是当我手工完成等效操作时会发生的事情:
$ pkg-config openssl --cflags --libs
-lssl -lcrypto
Run Code Online (Sandbox Code Playgroud)
如果pkg-config无法确认已安装软件包,则运行第二组检查.在这种情况下,它尝试编译一个简单的gcc程序,它检查libcrypt和libssl中是否存在函数.如果这两个都成功,安装继续.如果其中一个失败,则会出现致命错误,并且脚本会爆炸.
jos*_*ett 26
我使用Debian 6时遇到了同样的问题.我必须安装libcurl4-openssl-dev.
切换到root用户,或使用sudo,然后运行:
apt-get install libcurl4-openssl-dev
Run Code Online (Sandbox Code Playgroud)
这解决了我的问题.
Hal*_*Hal 10
如果使用Centos 5.x,请确保在./configure之前安装openssl-devel.
yum install openssl-devel
Run Code Online (Sandbox Code Playgroud)
这在centos中为我解决了同样的问题.
归档时间: |
|
查看次数: |
27868 次 |
最近记录: |