一、下载

官网下载地址 :  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. Spring MVC标签

    1.我们平时使用表单的时候,一般都是这样: <form id="form" action="Login.do" method="post&quo ...

  2. [技术博客]升级 API 面临的问题

    升级 API 面临的问题 我们使用的上一届的版本中,使用的底层的 安卓的 API 是 Android7.0 .在这一版本中,我们将 API进行了升级,为了更好的兼容新功能.(发送通知),我们在升级 A ...

  3. Pycharm 个人认为舒服漂亮又好用的主题风格

    又开始和code打交道了系列…… 实验室换了新电脑,故而,重新安装了各种软件,乃至重新配置  Pycharm主题,找了好久,终于找到,想着应该mark一下,以备下次需要. 个人认为 Monokai 这 ...

  4. sqlcode与sqlerrm的区别

    sqlCode:是数据库操作的返回码,其中0--成功:-1--失败:100--没有检索到数据. sqlerrm:是数返回指定错误代码的错误信息. 在一个内在的异常中,SQLCODE返回Oracle错误 ...

  5. centos7修改宝塔面板端口6666无法访问

    相信你看到我这篇随笔的时候已经查阅了不少资料了吧 先看看我和我朋友的对话吧 原因,想修改宝塔默认面板端口8888为6666,用的阿里云服务器,并且在安全组添加了6666端口 然后无法访问,想到linu ...

  6. 最细的eclipse 安装maven踩过的坑

    Eclipse安装maven插件踩过的坑 在线安装maven eclipse安装maven插件,在网上有各种各样的方法,博主使用过的也不止一种,但是留下的印象总是时好时不好,同样的方法也不确定那一次能 ...

  7. Dubbo快速入门 二

    2.dubbo核心概念 2.1).简介 Apache Dubbo (incubating) |ˈdʌbəʊ| 是一款高性能.轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调 ...

  8. mvc中hangfire全局简单配置

    public void Configuration(IAppBuilder app)       {           ConfigureAuth(app);           //指定使用Sql ...

  9. VMwarm下安装ubuntu的一些问题

    1.终端无法输入中文的原因(未实践)  原文地址 2.Windows10下VMwarm(V15.5)和ubuntu14.04实现复制文件(已经实践)  转载路径

  10. POST请求转换为PUT或者Delete请求、处理post请求乱码的过滤器、Get请求乱码

    在web.xml中配置 <!--配置HiddenHttpMethodFilter : 将所有的POST请求转换为PUT或者Delete请求 --><filter> <fi ...