cmake报错:Unsupported protocol

现象

最近在用cmake编译Apache arrow时,竟然报了错:
在这里插入图片描述

排查过程

最开始在网上直接搜“Unsupported protocol”,查到的说是因为安装的curl不支持https,需要先使用如下命令查询curl支持的协议:

curl -V

然而查出来却是支持https的:
在这里插入图片描述
这就奇怪了,我的curl明明支持,怎么告诉我不支持呢?

加上了cmake关键词再搜索,终于在知乎上搜到一篇文章1指出,可能是由于cmake安装时出了问题。
然而我按文章中的办法重新编译了cmake依然报错。

最后终于在stackoverflow上找到了一篇文章2,解释是由于安装cmake时,编译出了问题:
在使用cmake源码编译安装时,如果不特殊指定,则会自己编译一个curl,而cmake自己编译的cmake是不支持https的。

结论

cmake编译安装出了问题,需要重新安装,并在安装时指定使用系统自带的curl

以我使用的CentOS7为例,重新编译安装的过程如下:

  1. 首先安装依赖的curl和zlib:
sudo yum install -y curl-devel zlib-devel

注:这里需要使用devel版本。另外zlib是由于我安装时提醒需要。

  1. 之后进入cmake的编译目录,这里我是在源码中新建了一个build文件夹。
../bootstrap --prefix=/usr/local/cmake3.14.7 --system-curl

注:这里加了prefix是指定了安装的目录,方便我之后根据不同项目可以切换不同版本的cmake。

  1. 最后安装:
gmake -j8 && gmake install

至此重新编译Arrow,终于成功。


  1. 文章链接 ↩︎

  2. 文章链接 ↩︎

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值