一、下载

官网下载地址 :  https://curl.haxx.se/download.html

选择最新的一个即可。

二、安装

1、解压

下载到的压缩包为curl-7.51.0.tar.gz,使用命令  tar -zxvf curl-7.51.0.tar.gz   解压。

2、进入解压出的目录curl-7.51.0,执行

      (1)sudo ./configure

       (2)sudo make  

       (3)sudo make install

安装完成,在命令行测试是否可用,直接输入curl,出现如下情况安装基本成功

如果提示该命令不存在。则执行以下命令:

 export PATH=$PATH:/usr/local/curl/bin

检查/usr/include/里有没有crul没有的话,需要把解压出的include文件夹下的文件复制过去。

cp -r curl-7.51.0/include/curl/ /usr/include/

检查库和头文件

[root@localhost curl-7.51.0]# curl-config --cflags

-I/usr/local/include

 

[root@localhost curl-7.51.0]# curl-config --libs

-L/usr/local/lib -lcurl

以后使用gcc编译使用libcurl的c代码,都需加上-lcurl。

三、编译代码

使用libcurl官网的例子,只稍微修改。

  1. /***************************************************************************
  2. *                                  _   _ ____  _
  3. *  Project                     ___| | | |  _ \| |
  4. *                             / __| | | | |_) | |
  5. *                            | (__| |_| |  _ <| |___
  6. *                             \___|\___/|_| \_\_____|
  7. *
  8. * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
  9. *
  10. * This software is licensed as described in the file COPYING, which
  11. * you should have received as part of this distribution. The terms
  12. * are also available at https://curl.haxx.se/docs/copyright.html.
  13. *
  14. * You may opt to use, copy, modify, merge, publish, distribute and/or sell
  15. * copies of the Software, and permit persons to whom the Software is
  16. * furnished to do so, under the terms of the COPYING file.
  17. *
  18. * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
  19. * KIND, either express or implied.
  20. *
  21. ***************************************************************************/
  22. #include <stdio.h>
  23. #include <curl/curl.h>
  24. /* <DESC>
  25. * Get a single file from an FTPS server.
  26. * </DESC>
  27. */
  28. struct FtpFile {
  29. const char *filename;
  30. FILE *stream;
  31. };
  32. static size_t my_fwrite(void *buffer, size_t size, size_t nmemb,
  33. void *stream)
  34. {
  35. struct FtpFile *out=(struct FtpFile *)stream;
  36. if(out && !out->stream) {
  37. /* open file for writing */
  38. out->stream=fopen(out->filename, "wb");
  39. if(!out->stream)
  40. return -1; /* failure, can't open file to write */
  41. }
  42. return fwrite(buffer, size, nmemb, out->stream);
  43. }
  44. int main(void)
  45. {
  46. CURL *curl;
  47. CURLcode res;
  48. struct FtpFile ftpfile={
  49. "yourfile.bin", /* name to store the file as if successful */
  50. NULL
  51. };
  52. printf("come in");
  53. return 0;
  54. curl_global_init(CURL_GLOBAL_DEFAULT);
  55. curl = curl_easy_init();
  56. if(curl) {
  57. /*
  58. * You better replace the URL with one that works! Note that we use an
  59. * FTP:// URL with standard explicit FTPS. You can also do FTPS:// URLs if
  60. * you want to do the rarer kind of transfers: implicit.
  61. */
  62. curl_easy_setopt(curl, CURLOPT_URL,
  63. "ftp://user@server/home/user/file.txt");
  64. /* Define our callback to get called when there's data to be written */
  65. curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, my_fwrite);
  66. /* Set a pointer to our struct to pass to the callback */
  67. curl_easy_setopt(curl, CURLOPT_WRITEDATA, &ftpfile);
  68. /* We activate SSL and we require it for both control and data */
  69. curl_easy_setopt(curl, CURLOPT_USE_SSL, CURLUSESSL_ALL);
  70. /* Switch on full protocol/debug output */
  71. curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
  72. res = curl_easy_perform(curl);
  73. /* always cleanup */
  74. curl_easy_cleanup(curl);
  75. if(CURLE_OK != res) {
  76. /* we failed */
  77. fprintf(stderr, "curl told us %d\n", res);
  78. }
  79. }
  80. if(ftpfile.stream)
  81. fclose(ftpfile.stream); /* close the local file */
  82. curl_global_cleanup();
  83. return 0;
  84. }

编译:gcc ftpsget.c -o ddd.out -lcurl

执行:

可能会出现的问题:error while loading shared libraries: libcurl.so.4: cannot open shared object file: No such file or directory

解决方法:

查找 libcurl所有相关的so库所在位置,在/etc/ld.so.conf中加入libcurl有关so库所在目录。

进入根目录/,执行find -name *libcurl.so*,就会发现所在目录。

在/etc/ld.so.conf中加入   /usr/local/lib    这一行,

保存/etc/ld.so.conf

执行命令  /sbin/ldconfig -v  生效。

Linux libcurl安装及注意事项的更多相关文章

  1. Linux安装系统注意事项及系统初始化

      Linux安装系统注意事项 1.分区 学习用途: /boot:200M /swap :内存的1到2倍 /:根据需要分配大小,比如虚拟机下总空间是15G,那么可以分配8——10G跟/分区,如果是生产 ...

  2. 安装基于 Linux 发行版的重要事项(流程指引)

    安装基于 Linux 发行版的重要事项(Install important issues based on the Linux distribution. (Process guidance)) 1. ...

  3. windows下和linux下libcurl安装

    下载源代码,在winbuild里面有个说明文件: Building with Visual C++, prerequisites==================================== ...

  4. Linux上安装Zookeeper以及一些注意事项

    最近打算出一个系列,介绍Dubbo的使用. 分布式应用现在已经越来越广泛,Spring Could也是一个不错的一站式解决方案,不过据我了解国内目前貌似使用阿里Dubbo的公司比较多,一方面这个框架也 ...

  5. DBA_在Linux上安装Oracle Database11g数据库(案例)

    2014-08-08 Created By BaoXinjian

  6. 记录Linux下安装elasticSearch时遇到的一些错误

    记录Linux下安装elasticSearch时遇到的一些错误 http://blog.sina.com.cn/s/blog_c90ce4e001032f7w.html (2016-11-02 22: ...

  7. Nginx入门篇-基础知识与linux下安装操作

    我们要深刻理解学习NG的原理与安装方法,要切合实际结合业务需求,应用场景进行灵活使用. 一.Nginx知识简述Nginx是一个高性能的HTTP服务器和反向代理服务器,也是一个 IMAP/POP3/SM ...

  8. 机器学习linux系统环境安装

    机器学习linux系统环境安装 安装镜像下载 可以自己去ubuntu官方网站按照提示下载amd64的desktop版本 或者考虑到国内镜像站点下载,如tuna,163, ali等 课程使用最新的17. ...

  9. Linux基础学习(6)--Linux软件安装

    第六章——Linux软件安装 一.软件包管理简介 1.软件包分类: (1)源码包:脚本安装包 (2)二进制包(RPM包.系统默认包) 2.源码包: (1)源码包的优点:开源,如果有足够的能力,可以修改 ...

随机推荐

  1. 【Gamma阶段】第六次Scrum Meeting

    冰多多团队-Gamma阶段第六次Scrum会议 工作情况 团队成员 已完成任务 待完成任务 卓培锦 编辑器风格切换(添加夜间模式) UI界面手势切换 牛雅哲 语音输入shell应用:基于pytorch ...

  2. 学Redis这篇就够了!

    学Redis这篇就够了!   作者:王爷科技 https://www.toutiao.com/i6713520017595433485 Redis 简介 & 优势 Redis 数据类型 发布订 ...

  3. 关于MySQL 通用查询日志和慢查询日志分析(转)

    MySQL中的日志包括:错误日志.二进制日志.通用查询日志.慢查询日志等等.这里主要介绍下比较常用的两个功能:通用查询日志和慢查询日志. 1)通用查询日志:记录建立的客户端连接和执行的语句. 2)慢查 ...

  4. kudu 介绍

    kudu的好处: 快速的olap 列式存储,Hadoop parquet 的一种替代方案 对数据的顺序处理和随机处理都很高效 * High availability. Tablet Servers a ...

  5. 如何下载最新版本和旧版本的eclipse?

    1.进入官网,点击download,进入download界面,如果想要最新的版本的eclipse,直接点击下载即可,如图所示: 2.如果想下载旧版本的eclipse的话,可以点击上图的的downloa ...

  6. Java 在 Word 文档中使用新文本替换指定文本

    创作一份文案,经常会高频率地使用某些词汇,如地名.人名.人物职位等,若表述有误,就需要整体撤换.文本将介绍如何使用Spire.Doc for Java,在Java程序中对Word文档中的指定文本进行替 ...

  7. 算法设计与分析(李春保)练习题答案v1

    1.1第1 章─概论 1.1.1练习题 1.下列关于算法的说法中正确的有(). Ⅰ.求解某一类问题的算法是唯一的 Ⅱ.算法必须在有限步操作之后停止 Ⅲ.算法的每一步操作必须是明确的,不能有歧义或含义模 ...

  8. maven添加本地包命令mvn install:install-file

    mvn install:install .jar -Dfile:要注册的jar,绝对路径

  9. CentOS 7.0 更改SSH 远程连接 端口号

    许多学习过redhat 7的同学们,在使用centos的时候总会遇到一些问题,因为centos在安装时会默认开启一些服务,今天我们就来更改下centos 7.0的SSH端口. 操作步骤: 远程登录到c ...

  10. H5+asp.net 微信开发 遇到过的坑

    一.微信授权登录 1. 根据code 获取_access_tokens 2. 根据取到的openid和_access_tokens获取用户信息最神奇的是我用我自己的微信账号测试,一开始还可以取到tok ...