使用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支持。