windows环境编译curl

背景

根据工作项目需求,在Qt程序中需要使用curl库来实现,记录下window环境的编译步骤。整体逻辑是比较清晰的,但有个别坑必须记录,纪念下,也希望帮到其他人!!

具体环境

目前使用的是Qt5.12.6,msvc2017-32位编译器,将编译成该环境下的静态库。考虑业务需求,这里没有使用OpenSSL。其它环境类比即可。

实现步骤

一、下载curl源码

直接使用命令下载,git clone https://github.com/curl/curl.git 。可能提示unable to access的错误,GitHub的网络速度都懂的,多尝试几次一般就可以了。下载好的文件目录如下
源码目录

二、生成VS工程

1.进入源码根目录的projects文件夹,执行generate批处理文件生成VS工程,此时弹出一个小黑窗,等待执行完即可,不需要操作
生成VS工程
2.批处理执行完,进入当前目录的Windows目录,很多版本,这里打开VC15文件夹(对应VS2017)
VC15
3.找到cur-all.sln的文件在VS2017中打开即可
打开工程
4.打开工程后要进行一些设置,选择LIB RELEASE WIN32配置,然后重定解决方案
配置
重定解决方案
5.这里设置libcurl工程的编译属性,上面的curl工程忽略。配置为静态库类型
静态库
6.设置运行库为 多线程MT(代表静态库release版本)。
无
7.设置完毕,右键点击生成等待编译结束
无
8.收工,编译好的静态库已经躺在对应文件夹下了
库文件

库的使用

编译过程还是很简单的,有点坑人的地方来了。就是不能以为把这个静态库包含你的工程中就行了,还有其它的设置,还有其它库的依赖,不解决的话,包含到你代码工程中编译就一直报错无法解析的外部符号。。,花了半上午时间终于定位了问题,完美运行。

怎么把三方库添加到工程中等操作就不叙述了,这属于基本功。只说下注意项,很重要!!!
1.预处理器需要添加 CURL_STATICLIB
2.添加生成的库 libcurl.lib 还需要添加 ws2_32.lib wldap32.lib这两个依赖库,不然仍然编译报错
3.以上三步在VS2017中测试代码就可以运行起来了,但是如果是QtCreator中还需要再添加两个库advapi32.lib winmm.lib 都添加上才能运行起来

以上说的库,一般可以在本机找到,复制出来即可。但需要注意32还是64位
依赖库

要在Windows编译luacurl,您需要先安装一些依赖项和工具。以下是一般的步骤: 1. 安装CMake:在https://cmake.org/download/ 下载最新的CMake Windows安装程序,并按照提示进行安装。 2. 安装libcurl:您可以从https://curl.se/windows/ 下载预编译的libcurl二进制文件。选择与您的操作系统和编译器兼容的版本,并按照说明进行安装。 3. 安装Lua:您可以从https://www.lua.org/download.html 下载Lua源代码,并按照说明进行编译和安装。 4. 获取luacurl源代码:您可以从https://github.com/Lua-cURL/Lua-cURLv下载luacurl的源代码。点击“Code”按钮,然后选择“Download ZIP”来获取源代码压缩包。 5. 解压源代码:将下载的ZIP文件解压到您选择的目录中。 6. 打开命令提示符:按下Win + R,然后输入“cmd”并按Enter键来打开命令提示符。 7. 进入源代码目录:使用cd命令导航到解压的luacurl源代码目录。 8. 创建build目录:在命令提示符中输入以下命令创建一个名为“build”的目录: ``` mkdir build cd build ``` 9. 运行CMake:在命令提示符中输入以下命令来运行CMake: ``` cmake .. ``` 10. 编译luacurl:在命令提示符中输入以下命令来编译luacurl: ``` cmake --build . ``` 11. 完成编译:等待编译过程完成,如果一切顺利,将会在build目录中生成一个luacurl编译结果。 请注意,这只是一般的步骤,具体的步骤可能因您的系统环境和配置而有所不同。如果遇到任何错误或问题,请参考相关文档或寻求开发社区的帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你是周小哥啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值