记录linux编译curl库且启用sftp的依赖

curl库支持sftp,但是编译此库时默认是不开启的,需要libssh2与libssl库依赖,但是需要对应好各个lib的版本,在此记录下编译成功的各个版本依赖。

  • libssl库是openssl,版本号为1.0.2.t,下载链接地址为:https://www.openssl.org/source/old/1.0.2/openssl-1.0.2t.tar.gz
  • libssh2库,版本号为1.8.1,下载地址为:https://www.libssh2.org/download/libssh2-1.8.1.tar.gz
  • curl库,版本号为7.72.0,下载地址为:https://curl.se/download/curl-7.72.0.tar.gz

首先编译libssl,也就是openssl,因为libssh2和curl都依赖这个库,解压openssl-1.0.2t.tar.gz,进入解压文件夹,执行
./config shared# 要生成动态链接库,不然libssh2的链接会出错,报-fplc错误
make
make install
生成文件,都在/usr/local/ssl下,头文件目录:/usr/local/ssl/include,库文件目录:/usr/local/ssl/lib。
其次,编译libssh2,同样解压缩,进入解压缩目录,执行,
./configure --with-libssl-prefix=/usr/local/ssl
make
make install
最后,编译curl库,解压,进入文件夹,执行
./configure --with-libssh2=/usr/local --with-ssl=/usr/local/ssl
可以看到支持sftp协议了
make
make install

编译完成的curl程序在/usr/bin中,运行时可能会出现这个错误
在这里插入图片描述
这是编译好的curl程序链接不到动态库的原因,这个动态库在/usr/local/lib目录下,执行,
export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH
可以使用
在这里插入图片描述
C项目里引用需要的库文件就好。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐