libcurl在windows中编译和使用的说明文档(官方翻译)

2023-05-16

使用Visual C构建先决条件


本文档描述了如何编译,构建和安装curl和libcurl
从使用Visual C构建工具的来源。 要用VC构建,你会
当然要先安装VC。 所需的最低版本VC是6(Visual Studio 6的一部分)。 但是使用更新的版本是
强力推荐。

VC也是Windows Platform SDK的一部分。 您不必安装完整的Visual Studio或如果你想要的只是构建curl,只装Visual C++。

最新的Platform SDK可以从以下位置免费下载:

     https//developer.microsoft.com/en-us/windows/downloads/sdk-archive

如果您使用VC6构建,那么您还需要安装2003年2月的SDK平台版本,可从以下位置下载的Platform SDK版本:

     https//www.microsoft.com/en-us/download/details.aspx?id=12261

如果你想支持zlib,openssl,c-ares,ssh2,你必须下载它们分开并将它们复制到deps目录,如下所示:

    somedirectory \
     | _curl-SRC
     |  | _winbuild
     |
     | _deps
       | _ lib
       | _包括
       | _ bin

也可以在其他一些随机中创建deps目录放置,并使用WITH_DEVEL选项设置,告诉Makefile它的位置。

 

直接从git建立


当你从git下载代码并构建它时,而不是发布的源代码代码存档,您需要先运行“buildconf.bat”批处理文件(存在在源代码根目录中)进行设置。

 

打开VS命令行提示


使用'开发人员命令提示符VS <版本>'菜单项:
其中version是Visual Studio版本。 默认情况下开发人员提示
使用x86模式。 需要运行Vcvarsall.bat来设置提示
对于您想要的机器类型。
此类型的命令提示符有可能在某些Visual Studio版本中不存在。

 有关更多信息,请检查:
 https//docs.microsoft.com/en-us/dotnet/framework/tools/developer-command-prompt-for-vs
 https//docs.microsoft.com/en-us/cpp/build/how-to-enable-a-64-bit-visual-cpp-toolset-on-the-command-line

使用'VS <version> <platform> <type>命令提示符'菜单项:
 1.其中version是Visual Studio版本,平台例如是 64位并进行本地跨平台编译。 这种类型的命令提示符
 可能不存在于某些Visual Studio版本中。

 也可以看看:
 https//msdn.microsoft.com/en-us/library/f2ccy3wt.aspx

当你可以使用控制台后,转到Curl中的winbuild目录来源(输入下面命令):
cd curl-src\winbuild

然后你可以使用所需的选项调用nmake / f Makefile.vc进行编译(选项如下:)。
编译将在src目录的顶层目录,builds \目录中
使用为nmake调用提供的选项命名的目录。

nmake / f Makefile.vc mode = <static或dll> <options>

其中<options>是以下一个或多个:
VC = <6,7,8,9,10,11,12,14,15> - VC版本
WITH_DEVEL = <路径> -                     开发文件的路径(SSL,zlib等)
                                        默认位于deps的兄弟目录:../deps
                                        可以通过https//windows.php.net/downloads/php-sdk/deps/获取库。
                                        将它们解压缩到deps文件夹中。
                                        
WITH_SSL = <dll或static> -                 启用OpenSSL支持,DLL或静态

WITH_NGHTTP2 = <dll或static> -             启用HTTP / 2支持,DLL或静态

WITH_MBEDTLS = <dll或static> -             启用mbedTLS支持,DLL或静态

WITH_CARES = <dll或static> -             启用c-ares支持,DLL或静态

WITH_ZLIB = <dll或static> -                  启用zlib支持,DLL或静态

WITH_SSH2 = <dll或static> -             启用libSSH2支持,DLL或静态

ENABLE_SSPI = <yes或no> -                 启用SSPI支持,默认为yes

ENABLE_IPV6 = <yes或no> -                 启用IPv6,默认为yes

ENABLE_IDN = <yes或no> -                 启用Windows IDN API,默认为yes
                                                              需要Windows Vista或更高版本
                                        
ENABLE_WINSSL = <yes或no> -             启用本机Windows SSL支持,默认为yes

GEN_PDB = <yes或no> -                     生成程序数据库(发布版本的调试符号)

DEBUG = <yes或no> -                     调试版本

MACHINE = <x86或x64> -                     目标体系结构(默认为x86)

CARES_PATH = <自定义路径> -             自定义c-ares的自定义路径

MBEDTLS_PATH = <mbedTLS的路径> -         自定义mbedTLS的自定义路径

NGHTTP2_PATH = <HTTP/2的路径> -         自定义nghttp2的自定义路径

SSH2_PATH = <libSSH2的路径> -             自定义libSSH2的自定义路径

SSL_PATH = <OpenSSL的路径> -             自定义OpenSSL的自定义路径

ZLIB_PATH = <zlib的路径> -                 自定义zlib的自定义路径

 

使用微软的静态运行库连接


如果您使用的是mode = static,则nmake将创建并链接到静态构建libcurl,非静态运行库。 如果你必须使用静态运行库,通过传递RTLIBCFG = static选项,你可以强迫nmake编译静态运行库。
一般情况下你不应该使用它选项,nmake将默认为DLL 运行库。  
RTLIBCFG很少使用因此很少测试。 已经使用RTLIBCFG选项构建或者没有使用该选项,或者已指定不同的选项时,您必须销毁包含配置的构建目录
然后使用nmake就可以从头开始构建它。

 

旧版的Windows系统和SSL


使用此目录中的构建文件构建curl时,使用默认SSL支持将是WinSSL(Windows SSPI,更具体地说是Schannel->Secure Channel),
原生Windows操作系统附带的SSL库。  Windows <= XP中的WinSSL无法使用连接,因为不再支持过时握手的协议和算法

如果在早期版本的Windows中使用curl,您应该选择OpenSSL这样的SSL支持。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

libcurl在windows中编译和使用的说明文档(官方翻译) 的相关文章

  • AXI STREAM ,AXIS总线的理解

    全兼容ZEDBOARD 开发板子 SYSCLK TAOBAO COM 1 xff0c VALID和READY 是所有AXI总线必须有的 xff0c VALID是MASTER告诉SLAVE数据已经展现在了总线上了 xff0c 你可以取走了 x
  • ZYNQ7 DACHE的重要操作

    Flush the SrcBuffer before the DMA transfer in case the Data Cache is enabled Xil DCacheFlushRange u32 TxPacket MAX PKT
  • OV7670摄像采集图像在VGA上显示的分析和实现,精确到每个时钟,每行代码。

    OV7670使用RGB565模式 xff0c 30FPS xff0c 采集分辨率为640X480 xff0c 保存在ZYNQ7芯片7Z020的内部BRAM VGA控制器在读出端读出数据 xff0c 并用12BIT的色彩深度现在VGA接口屏幕
  • Ubuntu 20.04 python2安装pip

    Ubuntu 20已经无法通过apt来安装python2的pip2了 xff0c 只能安装python3的pip 方法 先确保你有python2 暂时还是可以用apt安装python2 sudo apt install python2 下面
  • PetaLinux 2019.1详细安装步骤以及所需要文件

    这里主要根据UG1144文档 xff0c 这两天成功安装使用了PetaLinux的最新版本2019 1 一 xff0c 在虚拟机里安装Ubuntu16 04 1 xff0c 选Ubuntu 操作系统的版本是16 04 我最初尝试过18版本的
  • STC芯片在Keil中的添加与使用

    一 使用官方烧录工具 stc isp v6 88K exe在Keil中添加STC芯片 此烧录工具可在STC官网上下载 二 打开STC ISP软件 xff0c 选择右侧 Keil仿真设置 栏 三 选择 添加型号和头文件到Keil中 添加STC
  • boost 与 C++11 比较

    先不说boost的初始化表是多么怪异的形式了 c 43 43 11用大括号一括起来就OK了 auto 和 boost auto 差别太大了 xff0c 必须得告诉boost auto宏一个类型 xff0c 而非编译器本身的推断 xff0c
  • C++——struct和class的区别

    在C语言中struct是一种数据类型 xff0c 那么就肯定不能定义函数 xff0c 所以在面向c的过程中 xff0c struct不能包含任何函数 否则编译器会报错 而在C 43 43 中 xff0c 其特性也有了新发展 xff0c 就拿
  • roslaunch使用示例

    本文是看了学长ROS 的 roslaunch 中 xml 相关要点 文章之后做了小改动 xff0c 主要是对 roslaunch 文件的简单总结 需要完成的前序工作是已经创建了 catkin 工作空间 xff1b 创建了 catkin 程序
  • 四旋翼的运动原理及几个飞行问题

    四旋翼的运动及原理 飞行的问题 调试 四旋翼飞行器通过调节四个电机转速来改变旋翼转速 xff0c 实现升力的变化 xff0c 从而控制飞行器的姿态和位置 四旋翼飞行器是一种六自由度的垂直升降机 xff0c 但只有四个输入力 xff0c 同时
  • 以太网数据包长度限制

    我们使用以太网进行数据传输 xff08 UDP TCP xff09 xff0c 数据包的大小是有限制的 xff0c 并不是多长都可以 TCP IP协议从下到上包含 xff1a 链路层 IP层 传输层 应用层 链路层 xff1a 链路层的数据
  • 串口接收完整一帧数据包的3种方法

    本文介绍3种使用串口接受一帧完整数据包的方法 xff0c 串口接收数据是字节接收的 xff0c 串口每接收1字节数据 xff0c 产生一个串口中断 xff0c 我们在中断中将接收到的数据存放到buf中进行保存 xff0c 但是数据的发送和接
  • 补码原码转换

    本文主要讲述补码和原码之间的换算 1 原码 转 补码 xff1a 正整数的补码是它本身 xff0c 即 1的原码是0000 0001 xff0c 补码 还是 0000 0001 负整数的补码是符号位不变 xff0c 其余位按位取反 xff0
  • 有符号数与无符号数之间的转换

    本文讲解有符号数和无符号数之间的转换 针对同一数据类型有符号数和无符号数之间的转换 xff0c 例如 int 和 unsigned int 之间和 char 和 unsigned char 之间 这种情况下 xff0c 二者之间的数据类型长
  • Ubuntu由于修改etc/profile文件导致开机无法登陆问题解决办法(仅供参考)

    在安装jdk或者arm linux gcc等开发工具时需要修改profile xff0c 一不小心导致无法正常登录系统 xff0c 这时候可以试试用以下办法解决 xff1a 1 进入ubuntu登录页面 xff0c 按alt 43 ctrl
  • 一文看懂,用示波器查看串口UART的波形,什么是数据位、起始位、奇偶校验位

    先介绍一些概念 起始位 先发出一个逻辑 0 的 信号 xff0c 表示传输数据的开始 校验位 xff1a 数据位加上这一位后 xff0c 使得 1 的位数应为偶数 偶校验 或奇数 奇校验 xff0c 以此来校验数据传送的正确性 就比如传输
  • Could not get lock /var/lib/dpkg/lock 问题解决方法

    今天在ubuntu上安装sqlite 时 xff0c 执行命令sudo apt get y install sqlite3 时 xff0c 系统提示 xff1a Could not get lock var lib dpkg lock op
  • Linux 应用开发之系统调用

    系统调用 xff08 System Call xff09 是操作系统提供给用户程序调用的一组 特殊 函数接口 Linux 系统分为内核空间和用户空间 xff0c 用户空间只能通过系统调用接口与内核空间进行通信 Linux 系统提供了两种方式
  • Linux Qt 开发之多线程

    Qt 应用程序中所有的界面响应事件都在一个主线程中运行 xff0c 当我们去调用QApplication对象的exec 方法时 xff0c Qt就不断去循环查询当前的事件队列中有没有事件发生 xff0c 如果有则转去执行对应的槽函数 xff
  • Linux根文件系统的制作(转载)

    Linux根文件系统的制作 什么是文件系统 计算机的文件系统是一种存储和组织计算机数据的方法 xff0c 它使得对其访问和查找变得容易 xff0c 文件系统使用文件和树形目录的抽象逻辑概念代替了硬盘和光盘等物理设备使用数据块的概念 xff0

随机推荐

  • vector

    原网址 xff1a http www cnblogs com zjfdlut archive 2010 11 13 1876409 html 个人菜鸟 xff0c 发表下对头文件包含顺序的看法 xff1a 首先是常规的包含 xff1a 1
  • add_libraries, add_executable, target_link_libraries, link_libraries用法

    相关命令用法 add libraries将指定的源文件生成库文件 add executable将指定的源文件生成可执行文件 target link libraries跟在add xxxx后 xff0c 表示在上述两命令生成的文件后进行外部库
  • cmake 链接动态链接库

    使用相对路径的时候 xff0c 你要让cmake能够搜索到找到你动态库 xff0c 就像直接使用gcc g 43 43 来链接的时候一样 xff0c 要使用 L来指定第三方库所在路径 cmake可以使用 LINK DIRECTORIES 命
  • TI毫米波雷达芯片(AWR2243)MIMO模式设置

    1 AWR 2243 支持的MIMO模式 awr 2243为三发四收 xff0c 支持时分多路复用 xff08 TDM xff09 MIMO模式 xff0c 以及三个发射天线同时工作的BPM MIMO模式 xff08 二进制调制相位调制 x
  • Odroid U3 烧写镜像文件

    点击打开链接 用SD卡烧写镜像文件 1 在liunx 终端建工作目录 xff1a mkdir linux img cd linux img 2 下载镜像 wget http odroid in ubuntu 14 04 1lts ubunt
  • win下批处理控制扩展屏幕

    仅电脑屏幕 displayswitch internal 复制 displayswitch clone 扩展 displayswitch extend 仅第二屏幕 displayswitch external 引用来源 xff1a http
  • ubuntu 安裝deb_.deb文件如何安装,Ubuntu下deb安装方法图文详解

    deb包是Debian xff0c Ubuntu等Linux发行版的软件安装包 xff0c 扩展名为 deb xff0c 是类似于rpm的软件包 xff0c Debian xff0c Ubuntu系统不推荐使用deb软件包 xff0c 因为
  • day3. -2 NX的SPI操作

    1 NVIDIA在线文档 https docs nvidia com jetson l4t index html page Tegra 20Linux 20Driver 20Package 20Development 20Guide hw
  • (二)随处可见的LED广告屏是怎么工作的呢?代码实现

    书接上回 xff0c 上一篇中我们聊到了LED点阵屏的工作原理和一些电气参数 本篇以第一篇为基础 xff0c 对软件层面进行展开 xff0c 同时也为下一篇接入GUI做铺垫 文章较第一篇有所增长 xff0c 大概需要5 7分钟可以看完 目标
  • (三)随处可见的LED广告屏是怎么工作的呢?接入GUI

    续上文 xff0c 本篇我们将尝试接入一个GUI来控制点阵屏 在前两篇中 xff0c 我们相继介绍了点阵屏的控制原理 xff0c 以及如何让点阵屏按照我们所想的进行显示 本篇将在此基础上接入一个GUI xff0c 使点阵屏的控制更加优雅 限
  • 解决:在STM32的标准库上添加DSP库时error: #247

    DSP库相对于标准的 math h 对浮点计算做了优化和增强 xff0c 运算速度更快 关于STM32如何添加DSP库 xff0c 网上有很多教程 xff0c 笔者在实际操作时发现会遇到keil报error 247的问题 针对于解决过程 x
  • CAN总线多帧即连续帧数据发送 拆包与重装

    1939协议支持多帧数据发送即数据超过8个的帧发送 用户可以通过ID来识别当前帧是否为多帧发送 xff08 连续帧 xff09 xff0c 如果是多帧发送ID xff0c 举例 xff1a 1C EC F4 56 其中 F4和56为目标地址
  • DLT645-2007 规约 电表 报文解析

    注 xff1a 本文为转载 转载地址 xff1a https wenku baidu com view cc10838283d049649b66580d html DLT645 2007 规约 常见报文解析 2012 9 29 by leg
  • 同相比例放大器 输入端 平衡电阻的问题

    同相比例放大器 xff0c 电路原型如下 xff0c 该图是从网上摘取的 xff08 如侵权请联系删除 xff0c 原网址链接见注1 xff09 其中R1为平衡电阻 xff0c 该电阻存在的意义个人认为用于平衡 43 和 向的输入电流 xf
  • SIM800C 透传模式与非透传模式测试对比

    测试过程中 xff0c 公网 IP地址为 xff1a 39 162 72 33 1080 测试 SIM xff1a 中国移动物联卡 测试数据格式 xff1a 16进制 链路连接 xff1a 单路 工作模式 xff1a TCP客户端 说明 x
  • PADS 无模命令 层显示

    Z 43 1 显示的为第一层 Z 43 2 显示的为第二层 依次类推 Z 43 o 显示外层 xff0c 即首层 Z xff08 n M 即显示第几层到第几层 Z 显示所有层 ZT 显示顶层 ZB 显示底层 ZSM Z B显示底层Z C显示
  • 16位精度 ADC 选型

    ADS8320 售价 xff1a 人民币25 40元 ADS8320 16 Bit High Speed 2 7 V to 5 V microPower Sampling Analog to Digital Converter 1Featu
  • 怎么样在stata上安装pwcorr_a啊?findit pwcorr_a之后就是下面图那样?

    怎么样在stata上安装pwcorr a啊 xff1f findit pwcorr a之后就是下面图那样 xff1f 转载 xff1a 我的电脑用findit 不行 xff0c 经管之家的要收费 xff0c 在Gitte网站找到一个开源的压
  • 奇偶校验(附代码实现)

    定义 奇偶校验 Parity Check 是一种校验代码传输正确性的方法 根据被传输的一组二进制代码的数位中 1 的个数是奇数或偶数来进行校验 采用奇数的称为奇校验 xff0c 反之 xff0c 称为偶校验 采用何种校验是事先规定好的 通常
  • libcurl在windows中编译和使用的说明文档(官方翻译)

    使用Visual C构建先决条件 本文档描述了如何编译 xff0c 构建和安装curl和libcurl 从使用Visual C构建工具的来源 要用VC构建 xff0c 你会 当然要先安装VC 所需的最低版本VC是6 xff08 Visual