系统安装好已经有了openssl,curl等,但是curl的ssl支持是默认关闭的
如下:
curl -G https://192.168.1.203/sdk -G
curl: (1) Protocol https not supported or disabled in libcurl
用源码编译各种报错,好不容易configure过,make之后报错
`a local symbol* can not be used when making a shared object; recompile with -fPIC版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
遇到这样的问题,通常是因为curl在编译时没有正确地链接到OpenSSL库,或者OpenSSL库本身编译时没有使用-fPIC
选项。这里提供一个解决步骤来帮助你手动编译并启用curl的SSL支持:
首先,确认你的系统中已经安装了OpenSSL,并且版本是支持SSL的。可以通过以下命令查看:
openssl version
从curl官方网站下载最新源代码包,或者选择一个稳定版本。例如:
wget https://curl.se/download/curl-7.80.0.tar.gz
tar -xzf curl-7.80.0.tar.gz
cd curl-7.80.0
在编译curl之前,确保指定了OpenSSL的路径以及启用SSL支持。如果你的OpenSSL安装在非标准位置,需要通过--with-ssl
指定。同时,为了确保动态库兼容性,添加--enable-shared
和CFLAGS=-fPIC
。执行如下配置命令:
./configure --prefix=/usr/local/curl --with-ssl --enable-shared CFLAGS=-fPIC
这里的/usr/local/curl
是安装目录示例,你可以根据实际情况调整。
如果配置成功,接下来进行编译和安装:
make
sudo make install
安装完成后,测试curl是否成功启用了SSL支持:
curl -V
你应该能看到输出中包含SSL相关信息,如SSL Version: OpenSSL/1.1.1
(版本号可能不同)。
如果curl安装到了非默认路径,确保它可以在命令行直接调用,可以将新安装的curl路径加入到环境变量PATH中:
echo 'export PATH="/usr/local/curl/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
完成以上步骤后,你应该能够正常使用带有SSL支持的curl访问https网站了。如果在编译OpenSSL或curl过程中仍然遇到问题,建议检查是否有依赖库缺失,或者尝试更新编译工具链(如gcc、make等)。