编译
1.下载地址:
我下载的是7.61.0
2.编译:
使用的是:VS2019 x64 本机工具命令提示,当然如果想编译成X86的库,可以选择VS2013 x86 本机工具命令提示或者VS2019 x64 兼容工具命令提示。
打开VS2019 x64 本机工具命令提示的快捷方式,进入libcurl源代码目录,进入winbuild下
静态库debug
nmake /f Makefile.vc mode=static VC=16 DEBUG=yes MACHINE=x64
静态库release
nmake /f Makefile.vc mode=static VC=16 MACHINE=x64
动态库debug
nmake /f Makefile.vc mode=dll VC=16 DEBUG=yes MACHINE=x64
动态库release
nmake /f Makefile.vc mode=dll VC=16 MACHINE=x64
编译完成 默认会在源代码的顶层目录下创建builds文件夹,用于存放编译生成的文件。
如果不想要编译SSPI,IPV6,IDN,WINSSL,PDB,可以参考BUILD.WINDOWS.txt使用下面指令编译
nmake /f Makefile.vc mode=dll VC=16 MACHINE=x64 ENABLE_SSPI=no ENABLE_IPV6=no ENABLE_IDN=no ENABLE_WINSSL=no GEN_PDB=no
编译完成如下:
libcurl-vc16-x64-release-dll是编译最终头文件、库文件、可执行程序所在目录,include是curl库的头文件存放目录;lib库是库文件所在目录,里面有libcurl.lib文件;bin目录是生成的curl.exe可执行文件和libcurl.dll的dll文件所在目录
注意:
1.动态编译的时候也会生成一个.lib文件,这个文件和静态编译的.lib并不一样,动态编译生成的.lib非常小里面,里面是被调用时编译用到的一些链接,真正运行时执行的是函数是在.dll里面,静态编译出的.lib是完整的库。
使用
下面例子是动态编译的库调用方式
1.创建一个demo目录
创建include文件夹,把前面编译的头文件curl复制进去
创建lib文件夹,把前面编译的libcurl.lib复制进去
创建src文件夹,里面创建一个demo.cpp文件
demo.cpp
#include <stdio.h>
#include <curl/curl.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
CURL *curl; //定义CURL类型的指针
CURLcode res; //定义CURLcode类型的变量,保存返回状态码
char url[] = "www.baidu.com";
curl = curl_easy_init(); //初始化一个CURL类型的指针
if (curl != NULL)
{
//设置curl选项. 其中CURLOPT_URL是让用户指 定url. url中存放的是网址
curl_easy_setopt(curl, CURLOPT_URL, url);
//调用curl_easy_perform 执行我们的设置.并进行相关的操作. 在这 里只在屏幕上显示出来.
res = curl_easy_perform(curl);
//清除curl操作.
curl_easy_cleanup(curl);
}
return 0;
}
创建CMakelist.txt
cmake_minimum_required(VERSION 3.0.0)
project(test)
set(CURL_DIR D:/workspace/demo)
include_directories("include/")
add_executable(test
src/demo.cpp)
set(CMAKE_BUILD_TYPE "Release")
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
target_compile_features(test PRIVATE cxx_std_14)
target_link_libraries(test "${CURL_DIR}/lib/libcurl.lib")
2.编译:
在根目录下创建一个build目录,运行
cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=Release ..
然后执行nmake进行编译完成,之后会在build目录下生成一个test.exe文件
将上面编译的libcurl.dll复制到build目录下,运行test.exe即可