windows下和linux下libcurl安装
下载源代码,在winbuild里面有个说明文件:
Building with Visual C++, prerequisites
=======================================
This document describes how to compile, build and install curl and libcurl
from sources using the Visual C++ build tool. To build with VC++, you will
of course have to first install VC++. The minimum required version of
VC is 6 (part of Visual Studio 6). However using a more recent version is
strongly recommended.
VC++ is also part of the Windows Platform SDK. You do not have to install
the full Visual Studio or Visual C++ if all you want is to build curl.
The latest Platform SDK can be downloaded freely from:
http://msdn.microsoft.com/en-us/windows/bb980924
If you are building with VC6 then you will also need the February 2003
Edition of the Platform SDK which can be downloaded from:
http://www.microsoft.com/en-us/download/details.aspx?id=12261
If you wish to support zlib, openssl, c-ares, ssh2, you will have to download
them separately and copy them to the deps directory as shown below:
somedirectory\
|_curl-src
| |_winbuild
|
|_deps
|_ lib
|_ include
|_ bin
It is also possible to create the deps directory in some other random
places and tell the Makefile its location using the WITH_DEVEL option.
Building with Visual C++
========================
Open a Visual Studio Command prompt or the SDK CMD shell.
Using the CMD Shell:
choose the right environment via the setenv command (see setenv /?)
for the full list of options. setenv /xp /x86 /release for example.
Using the Visual Studio command prompt Shell:
Everything is already pre-configured by calling one of the command
prompt.
Once you are in the console, go to the winbuild directory in the Curl
sources:
cd curl-src\winbuild
Then you can call nmake /f Makefile.vc with the desired options (see below).
The builds will be in the top src directory, builds\ directory, in
a directory named using the options given to the nmake call.
nmake /f Makefile.vc mode=<static or dll> <options>
where <options> is one or many of:
VC=<6,7,8,9,10,11,12,14> - VC versions
WITH_DEVEL=<path> - Paths for the development files (SSL, zlib, etc.)
Defaults to sibbling directory deps: ../deps
Libraries can be fetched at http://windows.php.net/downloads/php-sdk/deps/
Uncompress them into the deps folder.
WITH_SSL=<dll or static> - Enable OpenSSL support, DLL or static
WITH_CARES=<dll or static> - Enable c-ares support, DLL or static
WITH_ZLIB=<dll or static> - Enable zlib support, DLL or static
WITH_SSH2=<dll or static> - Enable libSSH2 support, DLL or static
ENABLE_SSPI=<yes or no> - Enable SSPI support, defaults to yes
ENABLE_IPV6=<yes or no> - Enable IPv6, defaults to yes
ENABLE_IDN=<yes or no> - Enable use of Windows IDN APIs, defaults to yes
Requires Windows Vista or later, or installation from:
http://www.microsoft.com/downloads/details.aspx?FamilyID=AD6158D7-DDBA-416A-9109-07607425A815
ENABLE_WINSSL=<yes or no> - Enable native Windows SSL support, defaults to yes
GEN_PDB=<yes or no> - Generate Program Database (debug symbols for release build)
DEBUG=<yes or no> - Debug builds
MACHINE=<x86 or x64> - Target architecture (default is x86)
Static linking of Microsoft's C RunTime (CRT):
==============================================
If you are using mode=static nmake will create and link to the static build of
libcurl but *not* the static CRT. If you must you can force nmake to link in
the static CRT by passing RTLIBCFG=static. Typically you shouldn't use that
option, and nmake will default to the DLL CRT. RTLIBCFG is rarely used and
therefore rarely tested. When passing RTLIBCFG for a configuration that was
already built but not with that option, or if the option was specified
differently, you must destroy the build directory containing the configuration
so that nmake can build it from scratch.
Legacy Windows and SSL
======================
When you build curl using the build files in this directory the default SSL
backend will be WinSSL (Windows SSPI, more specifically Schannel), the native
SSL library that comes with the Windows OS. WinSSL in Windows <= XP is not able
to connect to servers that no longer support the legacy handshakes and
algorithms used by those versions. If you will be using curl in one of those
earlier versions of Windows you should choose another SSL backend like OpenSSL.
另外里面有sln文件,可以直接打开然后编译。
使用libcurl的时候
指定VC路径
include到目录里面的indclude
lib库指到刚编译的lib\release_lib\
1、给工程添加依赖的库:项目->属性->链接器->输入->附加依赖项,把libcurl.lib ws2_32.lib winmm.lib wldap32.lib添加进去
注意,debug配置用libcurld.lib
2、加入预编译选项:项目->属性->c/c++ ->预处理器->预处理器,把 ;BUILDING_LIBCURL;HTTP_ONLY复制进去(注意不要丢了";")
就可以静态编译了.
项目使用libcurl出现:
__imp__ldap_init
error LNK2019: 无法解析的外部符号 __imp__ldap_init,该符号在函数 __ldap_free_urldesc 中被引用
加入这两个
Ws2_32.lib Wldap32.lib
linux下安装:
在 curl 官网http://curl.haxx.se/download.html下载
然后make三部曲,ok,
/usr/local/include/curl
更多:http://blog.csdn.net/mos2046/article/details/7697530
windows下和linux下libcurl安装的更多相关文章
- windows下和linux下 Redis 安装
Redis 是一个高性能的key-value数据库, 使用内存作为主存储,数据访问速度非常快,当然它也提供了两种机制支持数据持久化存储.比较遗憾的是,Redis项目不直接支持Windows,Windo ...
- socket在windows下和linux下的区别
原文:socket在windows下和linux下的区别 1)头文件 windows下winsock.h/winsock2.h linux下sys/socket.h 错误处理:errno.h 2 ...
- python在windows和linux下的安装和配置
一.windows下安装python3.6 安装编辑器:Ecplise+pydev插件 Eclipse是写JAVA的IDE, 这样就可以通用了,学习代价小. 学会了Eclipse, 以后写Pytho ...
- RocketMQ在Windows和Linux下的安装
windows下的RocketMQ的安装 鉴于Quick Start,选择单mater模式,环境简单: win10 64 jdk1.8 maven 3.5.4 Git rocketMQ安装版本 4.4 ...
- docker在windows下和linux下网络底层的一些区别
windows和linux下的docker运行时的网络结构是有区别的 a.windows下,默认使用Hyper-v创建一个linux虚拟机,承载docker.所以从外向内的路径为: windows - ...
- jsoncpp在Windows和Linux下的安装
Windows下: 参考这个网站,没什么问题,注意MTd这些选对就行了. http://www.cppblog.com/wanghaiguang/archive/2013/12/26/205020.h ...
- Mysql在windows下和linux下对表名大小写默认要求的一个细节
今天在虚拟机里搭建项目环境,偷了下懒,直接把本机数据库中的表用sqlyog复制给虚拟机中的数据库,然后开始部署项目,项目一启动提示: Table 'sdmqrt.QRTZ_LOCKS' doesn't ...
- netstat 在windows下和Linux下查看网络连接和端口占用
假设忽然起个服务,告诉我8080端口被占用了,OK,我要去看一下是什么服务正在占用着,能不能杀 先假设我是在Windows下: 第一列: Proto 协议 第二列: 本地地址[ip+端口] 第三列:远 ...
- windows下和linux下运行jar
需要在windows下运行jar,首先需要我们打包出来可执行jar idea打包可执行jar可以参考我的另一篇博客[https://mp.csdn.net/postedit/88653200] 一.w ...
随机推荐
- C#导出Excel按照指定格式设置单元格属性值
最近项目中一直在写XML.Table.Excel之间的转化.之前一直都是不考虑格式的导出,今天给出一个格式,让按照格式导出,还真把我这新手为难了一翻,网上给出的资料基本一样.为了一个单元格文字变色纠结 ...
- Leetcode: n-queen, n-queen II
思路: 题目给出的测试数据范围比较小, 使用回溯就可以AC, 搞的我也没有兴趣去研究高效解法了 总结: 刚开始, 本以为用棋盘问题的状态压缩 DP 就可以解决, 但做完 N-queen 才发现多个皇后 ...
- ios button标记
在写项目的时候,for循环创建多个button,在需要设置背景图片和,需要标记所选中的button的需求, 在这里提供两种方法: 一: 1:把for循环创建的button全部装到一个新建的数组中,把他 ...
- SVN-001
1.cd到指定目录: 2.执行:svn cleanup:
- Duilib教程-HelloDuilib及DuiDesigner的简单使用
一.HelloDuilib 1. 首先理解DUILIB显示的一个基本流程,如下图: 在Duilib中,WindowImplBase 这个类代表了图中 “CWndClass”. 所以我们需要做的是: 1 ...
- Maven(一)-- 基础知识
一.Maven的基本概念 Maven(翻译为"专家","内行")是跨平台的项目管理工具.主要服务于基于Java平台的项目构建,依赖管理和项目信息管理. 1.项目 ...
- React的setState如何实现同步处理数据
React里面的使用setState来进行状态的更新,为了性能的提升,此时的过程是异步操作的,那我们如果在一个进程里面想同步操作改变了状态的值怎么办呢,这里需要使用回调函数了: this.setSta ...
- jquery获取父级元素、子级元素、兄弟元素的方法
jQuery.parent(expr) 找父亲节点,可以传入expr进行过滤,比如$("span").parent()或者$("span").parent(&q ...
- poj_3274 哈希
哈希 Hash 哈希是一种将复杂数据转换为线性数据从而可以进行随机访问的查找算法. 哈希经常用于对复杂数据(如结构体.对象等)的查找,在使用的时候,需要定义一个Hash函数,将需要查找的复杂对象转化为 ...
- JS-键盘事件之方向键移动元素
注意三点: 1:事件名称onkeydown. 2:事件加给document,而非window. 3: 把元素的top,left值分别用offsetTop,offsetLeft来设定. <!DOC ...