首页/新闻资讯/正文详情

Window下编译curl-7.80.0

发布时间:2026/9/26 16:12:59 来源:云帆数科 栏目:资讯中心
Window下编译curl-7.80.0
Windows下使用VS2026编译curl-7.80.0.zip依赖zlib-1.2.8.tar.gz openssl-1.1.1w.tar.gz 。三个库均编译 为64位 release静态库。1、编译zlibcd E:\SoftwareDev\WebDownload\zlib-1.2.8 mkdir build cd build cmake .. -A x64 -DBUILD_SHARED_LIBSOFF -DCMAKE_POLICY_VERSION_MINIMUM3.5 -DCMAKE_INSTALL_PREFIXE:\openssl-install\static-x64-release编译release版本静态库cmake --build . --config Release生成后文件在E:\SoftwareDev\WebDownload\zlib-1.2.8\build\Release 目录下静态库为zlibstatic.lib。安装cmake --install . --config Release2、编译openssl参考用VS2019编译librdkafka库_librdkafka windows 需要哪些依赖库-CSDN博客https://blog.csdn.net/eamon100/article/details/1155883532.1 安装依赖的软件perl和nasm。2.2 配置库ppm install dmake perl Configure VC-WIN64A no-shared --prefixD:\openssl-install\static-x64-releaseVC代表 ‌Visual C‌ (Microsoft Visual Studio 编译器)。WIN64代表 ‌Windows 64位‌ 平台。A代表 ‌AMD64/Intel 64‌ 架构即常见的 x86_64。no-shared‌含义‌禁用共享库动态链接库 .dll的构建。‌作用‌强制 OpenSSL 只编译 ‌静态库‌.lib 文件即 libcrypto.lib 和 libssl.lib。生成的程序在链接时会将 OpenSSL 的代码直接打包进 .exe 或 .dll 中运行时不再依赖外部的 libcrypto-1_1-x64.dll 等文件。‌注意‌在 OpenSSL 1.1.x 系列中no-shared 通常也意味着不会生成用于导入 DLL 的 .lib 文件而是生成包含实际代码的静态归档库。--prefixE:\openssl-install\static-x64-release‌含义‌指定安装目录的前缀路径。‌作用‌当你后续执行nmake install时编译好的头文件include/、库文件lib/和二进制工具bin/openssl.exe会被复制到这个目录下。重要提示‌在 Windows 上--prefix必须使用 ‌绝对路径‌如本例所示不能使用相对路径如./install否则配置会报错。2.3 编译安装nmake 编译 nmake install 安装 nmake clean 清理编译生成 libcrypto.lib 和 libssl.lib。2.4 测试OpenSSL 静态库依赖 Windows 系统库必须在链接器中添加以下库ws2_32.lib crypt32.lib advapi32.lib user32.lib#include stdio.h #include stdlib.h #include string.h #include openssl/ssl.h #include openssl/err.h #include openssl/sha.h #include openssl/crypto.h #define OPENSSL_STATIC /* * 注意在 Windows MSVC 环境下编译 OpenSSL 1.1.1 静态库时 * 通常需要定义 OPENSSL_STATIC 宏以确保链接正确的库符号。 */ #ifdef _MSC_VER #pragma comment(lib, libssl.lib) #pragma comment(lib, libcrypto.lib) /* 如果使用的是静态运行时库(/MT)可能还需要链接以下系统库 */ #pragma comment(lib, ws2_32.lib) #pragma comment(lib, advapi32.lib) #pragma comment(lib, crypt32.lib) #pragma comment(lib, user32.lib) #endif void print_openssl_version() { printf(OpenSSL Version: %s\n, OpenSSL_version(OPENSSL_VERSION)); printf(Built on: %s\n, OpenSSL_version(OPENSSL_BUILT_ON)); printf(Platform: %s\n, OpenSSL_version(OPENSSL_PLATFORM)); } void test_sha256(const char* input) { unsigned char hash[SHA256_DIGEST_LENGTH]; SHA256_CTX sha256; if (!SHA256_Init(sha256)) { fprintf(stderr, SHA256_Init failed\n); return; } if (!SHA256_Update(sha256, input, strlen(input))) { fprintf(stderr, SHA256_Update failed\n); return; } if (!SHA256_Final(hash, sha256)) { fprintf(stderr, SHA256_Final failed\n); return; } printf(SHA256 Hash of \%s\: , input); for (int i 0; i SHA256_DIGEST_LENGTH; i) { printf(%02x, hash[i]); } printf(\n); } int main() { /* 初始化 OpenSSL 库 */ OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CONFIG, NULL); printf(--- OpenSSL 1.1.1w Static Library Test ---\n); /* 1. 测试版本信息 */ print_openssl_version(); /* 2. 测试基本加密功能 (SHA256) */ const char* test_string Hello, OpenSSL 1.1.1w!; test_sha256(test_string); /* 清理资源 */ EVP_cleanup(); CRYPTO_cleanup_all_ex_data(); printf(--- Test Completed Successfully ---\n); return 0; }3、编译curlmkdir buildcmake .. -DCMAKE_USE_OPENSSLON -DCURL_ZLIBON -DBUILD_SHARED_LIBSOFF -DCURL_STATICLIBON -DCURL_DISABLE_FTPOFF -DCURL_DISABLE_HTTPOFF -DCURL_DISABLE_MQTTOFF -DCURL_DISABLE_LDAPON -DCURL_DISABLE_TELNETON -DCURL_DISABLE_DICTON -DCURL_DISABLE_FILEON -DCURL_DISABLE_IMAPON -DCURL_DISABLE_POP3ON -DCURL_DISABLE_SMTPON -DCURL_DISABLE_GOPHERON -DCURL_DISABLE_SMBON -DCURL_DISABLE_TFTPON -DCMAKE_DISABLE_FIND_PACKAGE_LibSSH2TRUE -DCMAKE_PREFIX_PATHE:\openssl-install\static-x64-release编译cmake --build . --config ReleaseE:\SoftwareDev\WebDownload\curl-7.80.0\build\lib\Release\libcurl.lib查看链接情况E:\SoftwareDev\WebDownload\curl-7.80.0\builddumpbin /SYMBOLS E:\SoftwareDev\WebDownload\curl-7.80.0\build\lib\Release\libcurl.lib | findstr /i zlibVersion 029 00000000 UNDEF notype () External | zlibVersion 066 00000000 UNDEF notype () External | zlibVersion E:\SoftwareDev\WebDownload\curl-7.80.0\builddumpbin /ARCHIVEMEMBERS E:\SoftwareDev\WebDownload\curl-7.80.0\build\lib\Release\libcurl.lib | findstr /i ssl crypto Archive member name at 2CA6C: /187 libcurl.dir\Release\wolfssl.obj Archive member name at 3A290: /386 libcurl.dir\Release\openssl.obj Archive member name at 5DCBC: /644 libcurl.dir\Release\bearssl.obj E:\SoftwareDev\WebDownload\curl-7.80.0\build使用curl库的例子【免费】curl-7.80.0静态库简单示例资源-CSDN下载

相关推荐

C语言学习--回顾(01)
C语言学习--回顾(01)

(第一篇) 目录 (第一篇) 1.前言: 2.导言: 3.C语言基础中的重点知识点 1.初识C语言——C语言基础 1.1编译环境搭建 1.1.1翻译工具 1.1.2常用编译器推荐 1.2.C语言程序编写 1.2.1main函数及其特性 … · 2026/9/26 16:12:59

基于Android的信息化医疗服务系统开发实战:架构与数据流
基于Android的信息化医疗服务系统开发实战:架构与数据流

简介:面向Android移动开发与高校课程设计场景,这套信息化医疗服务系统源自大三课程设计项目,包含患者端App、SpringBoot与jFinal实现的后端接口,以及简化版Web管理后台,整体架构清晰,适合需要医疗类项目参考… · 2026/9/26 16:12:52

AMD BC-160 在 Linux 显示输出折腾实录
AMD BC-160 在 Linux 显示输出折腾实录

前言:Proxmox 的机器上插着一张 AMD BC-160(Navi 12 )。在 Windows 下靠魔改驱动能亮机,在 Linux 下 miniDP 插上显示器永远无信号。 排查到最后发现是 PSP 固件在报告硬件能力时,给"显示单元"打了一个 harv… · 2026/9/26 16:12:52

中秋月圆:东坡问天里的盈亏大道
中秋月圆:东坡问天里的盈亏大道

明月几时有,把酒问青天。千百年来,但凡识文断字的华夏儿女,无数士子学人、寻常百姓,都曾反复吟诵这一句。词句跨越千年光阴,从大宋的中秋月夜一路流传至今,一代又一代人口耳相传,绵延不绝&#… · 2026/9/26 17:23:53

Claude Code Templates 模板与 MCP 集成实战指南
Claude Code Templates 模板与 MCP 集成实战指南

1. 从一条命令说起:claude-code-templates 到底解决了什么麻烦第一次接触 Claude Code 的人,大概率会经历这么一段心路:装好了 CLI,敲下claude,然后对着空荡荡的项目目录发呆——接下来该干嘛?官方文档告诉… · 2026/9/26 17:23:53

PE启动U盘实战指南:Ventoy+微PE双轨制作与多系统救援
PE启动U盘实战指南:Ventoy+微PE双轨制作与多系统救援

1. 为什么现在还要折腾PE启动U盘?——不是过时,而是更刚需了PE启动U盘这东西,很多人第一反应是“老古董”,觉得Windows自带重置、厂商预装恢复分区、甚至云重装都挺方便,何必自己动手?但实话讲,… · 2026/9/26 17:23:44

透彻理解Java泛型:类型擦除、桥接方法与实战代码解析
透彻理解Java泛型:类型擦除、桥接方法与实战代码解析

对于搞 Java 的朋友来说,泛型是个绕不开的话题。日常写业务代码要用到它,面试的时候更是高频考点,最近常见的 Java 面试八股文里,泛型那一栏的出镜率一直不低。我发现一个有意思的现象:很多人写代码能熟练使用 List、M… · 2026/9/26 17:23:37

创业第274天:一个SaaS创业者的日常复盘与决策笔记
创业第274天:一个SaaS创业者的日常复盘与决策笔记

2026年1月8日,是我独立创业的第274天。项目是一款叫“店小ai”的SaaS工具,服务本地生活类小商家,帮他们自动回复私信、自动发券、整理顾客评价。这个方向不算性感,但现金流踏实,甲方都是美甲店、理发店、小餐馆的老板&… · 2026/9/26 17:23:37

创业第413天:砍掉低效功能,聚焦核心路径
创业第413天:砍掉低效功能,聚焦核心路径

2026年1月8日,周四。创业第413天,早上七点零三分醒来,窗外雾霾比昨天淡了一些。半小时后我坐到书桌前,打开电脑,开始一天的工作。今天这篇不打算写什么宏大叙事,就想把创业日常里真实的一天,包括… · 2026/9/26 17:23:37

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21

OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40

向下兼容与向上兼容:接口设计中的兼容性策略与工程实践
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践

一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码