交叉编译curl(OpenSSL)移植ARM详细步骤

运行配置脚本
使用 Configure 脚本配置 OpenSSL,指定目标平台和安装路径:

curl downloads  各个版本

Old 1.1.1 Releases | OpenSSL Library   各个版本

从 OpenSSL 官网下载源码包

tar -xzf openssl-1.1.1b.tar.gz
cd openssl-1.1.1b/

运行配置脚本
使用 Configure 脚本配置 OpenSSL,指定目标平台和安装路径: 

./Configure linux-armv4 --prefix=/home/lxh/arm-libs/install --cross-compile-prefix=arm-linux-gnueabihf-

    • linux-armv4:指定目标平台为 ARM。

    • --prefix:指定安装路径(替换为你的目标路径)。

    • --cross-compile-prefix:指定交叉编译工具链前缀。

  1. 调整配置(可选)
    如果需要调整配置,可以编辑生成的 Makefile,例如:

    • 修改 CFLAGS 和 LDFLAGS 以优化编译选项。

    • 确保 -march=armv7-a 或 -mcpu=cortex-a9 等选项适合你的目标硬件。

    • 编译 OpenSSL

    • 编译源码
      运行以下命令开始编译:

      make -j$(nproc)
      • -j$(nproc):使用多核并行编译以加快速度。

    • 检查编译结果
      编译完成后,检查生成的库文件和可执行文件:

      file apps/openssl

      输出应显示为 ARM 架构的可执行文件。

将编译好的 OpenSSL 安装到指定路径:

make install

下载并解压 curl 源码

tar -xvjf curl-7.64.1.tar.bz2 
cd curl-7.64.1

使用 configure 脚本配置编译选项,指定交叉编译工具链和目标平台

./configure --host=arm-linux-gnueabihf --prefix=/home/lxh/arm-libs/install \--with-ssl=/home/lxh/arm-libs/install \--disable-ldap \--disable-ldaps \--without-libpsl \--without-libidn2 \--without-zstd \--without-brotli \--without-libpsl \CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++
  • --host=arm-linux-gnueabihf:指定目标平台为 ARM。

  • --prefix=/home/lxh/arm-libs/install:指定安装目录。

  • --with-ssl 和 --with-zlib:启用 SSL 和 zlib 支持。

  • CC 和 CXX:指定交叉编译器

编译和安装

make -j$(nproc)
make install

在 ARM 设备上运行 curl,验证是否正常工作。

testcurl.c

 #include <curl/curl.h>
int main(void)
{CURL *curl;CURLcode res;curl_global_init(CURL_GLOBAL_DEFAULT);curl = curl_easy_init();if (curl){curl_easy_setopt(curl, CURLOPT_URL, "https://www.baidu.com");res = curl_easy_perform(curl);if (res != CURLE_OK)fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));curl_easy_cleanup(curl);}curl_global_cleanup();return 0;
}

makefile

# 交叉编译工具链
CC = arm-linux-gnueabihf-gcc# curl 库的安装路径
CURL_DIR = /home/lxh/arm-libs/install# 编译选项
CFLAGS = -I$(CURL_DIR)/include
LDFLAGS = -L$(CURL_DIR)/lib -lcurl -lssl -lcrypto# 目标可执行文件
TARGET = curl_example# 源文件
SRCS = testcurl.c# 默认目标
all: $(TARGET)# 编译规则
$(TARGET): $(SRCS)$(CC) $(CFLAGS) -o $(TARGET) $(SRCS) $(LDFLAGS)# 清理
clean:rm -f $(TARGET)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/70649.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大语言模型中的 Token如何理解?

在大语言模型中&#xff0c;Token 是文本处理的基本单元&#xff0c;类似于“文字块”&#xff0c;模型通过将文本分割成Token来理解和生成内容。举一个形象一点的例子&#xff0c;可以理解为 AI 处理文字时的“最小积木块”。就像搭乐高时&#xff0c;每块积木是基础单位一样&…

表单制作代码,登录动画背景前端模板

炫酷动效登录页 引言 在网页设计中,按钮是用户交互的重要元素之一。一个炫酷的按钮特效不仅能提升用户体验,还能为网页增添独特的视觉吸引力。今天,我们将通过CSS来实现一个“表单制作代码,登录动画背景前端模板”。该素材呈现了数据符号排版显示出人形的动画效果,新颖有…

1分钟用DeepSeek编写一个PDF转Word软件

一、引言 如今&#xff0c;在线工具的普及让PDF转Word成为了一个常见需求&#xff0c;常见的pdf转word工具有收费的wps&#xff0c;免费的有pdfgear&#xff0c;见下文&#xff1a; PDFgear:一款免费的PDF编辑、格式转化软件-CSDN博客 还有网上在线的免费pdf转word工具smallp…

【找工作】C++和算法复习(自用)

文章目录 C头文件自定义排序函数stl 算法数据结构树状数组 数学字符串manacherkmp 自用随便记录 C 排序 stl 头文件 全能头文件&#xff1a; #include<bits/stdc.h>自定义排序函数 bool compare(const int &odd1,const int &odd2) {return odd1>odd2; }…

请谈谈 React 中的状态管理,如何使用 Context API 和 Redux 进行状态管理?

一、Context API 深度应用 1. 核心实现原理 通过createContext创建上下文对象&#xff0c;使用Provider组件包裹需要共享状态的组件树&#xff0c;子组件通过useContext Hook或Consumer组件消费数据。 代码示例&#xff08;主题切换场景&#xff09;&#xff1a; // 创建上…

kotlin的Int类型调用toString()会导致空指针吗

DeepSeek R1 思考 38 秒 思考过程 用户的问题是关于Kotlin中Int类型调用toString()是否会导致空指针异常。首先&#xff0c;我需要回忆Kotlin的基本类型系统。Kotlin中的Int属于基本数据类型&#xff0c;但它在语言层面被表示为非空类型。也就是说&#xff0c;Int变量本身不能…

网络运维学习笔记 017 HCIA-Datacom综合实验01

文章目录 综合实验1实验需求总部特性 分支8分支9 配置一、 基本配置&#xff08;IP二层VLAN链路聚合&#xff09;ACC_SWSW-S1SW-S2SW-Ser1SW-CoreSW8SW9DHCPISPGW 二、 单臂路由GW 三、 vlanifSW8SW9 四、 OSPFSW8SW9GW 五、 DHCPDHCPGW 六、 NAT缺省路由GW 七、 HTTPGW 综合实…

基于Hadoop的汽车大数据分析系统设计与实现【爬虫、数据预处理、MapReduce、echarts、Flask】

文章目录 有需要本项目的代码或文档以及全部资源&#xff0c;或者部署调试可以私信博主 项目介绍爬虫数据概览HIve表设计Cars Database Tables 1. cars_data2. annual_sales_volume3. brand_sales_volume4. city_sales_volume5. sales_volume_by_year_and_brand6. sales_distri…

springboot实现多文件上传

springboot实现多文件上传 代码 package com.sh.system.controller;import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.PostMap…

Java所有运算符理解

Java 运算符 算术运算符 表格中的实例假设整数变量A的值为10&#xff0c;变量B的值为20&#xff1a; 操作符描述例子加法 - 相加运算符两侧的值A B 等于 30-减法 - 左操作数减去右操作数A – B 等于 -10*乘法 - 相乘操作符两侧的值A * B等于200/除法 - 左操作数除以右操作数…

纷析云:赋能企业财务数字化转型的开源解决方案

在企业数字化转型的浪潮中&#xff0c;财务管理的高效与安全成为关键。纷析云凭借其开源、安全、灵活的财务软件解决方案&#xff0c;为企业提供了一条理想的转型路径。 一、开源的力量&#xff1a;自主、安全、高效 纷析云的核心优势在于其100%开源的财务软件源码。这意味着…

Golang深度学习

前言 在2009年&#xff0c;Google公司发布了一种新的编程语言&#xff0c;名为Go&#xff08;或称为Golang&#xff09;&#xff0c;旨在提高编程效率、简化并发编程&#xff0c;并提供强大的标准库支持。Go语言的设计者们希望通过Go语言能够解决软件开发中的一些长期存在的问…

博客系统笔记总结 2( Linux 相关)

Linux 基本使用和程序部署 基本命令 文件操作 显示当前目录下的文件 ls&#xff1a;显示当前目录下的文件 ll&#xff1a;以列表的形式展示&#xff0c;包括隐藏文件 进入目录 && 显示当前路径 cd&#xff1a;进入目录&#xff08;后面跟相对路径或者绝对路径&…

开源基准测试模拟器:BlueROV2 水下机器人的控制

拜读An Open-Source Benchmark Simulator: Control of a BlueROV2 Underwater Robot 非常感谢Esben Uth的帮助。 本文介绍了在 Simulink™ 中实现的常用且低成本的遥控潜水器 &#xff08;ROV&#xff09; BlueROV2 的仿真模型环境&#xff0c;该环境已针对水下航行器的基准控…

Unity打包APK报错 using a newer Android Gradle plugin to use compileSdk = 35

Unity打包APK报错 using a newer Android Gradle plugin to use compileSdk 35 三个报错信息如下 第一个 WARNING:We recommend using a newer Android Gradle plugin to use compileSdk 35This Android Gradle plugin (7.1.2) was tested up to compileSdk 32This warning…

HTML5特殊字符

HTML中常用的特殊符号一般都以“&”开头&#xff0c;以“;”结束。

本地大模型编程实战(23)用智能体(Agent)实现基于SQL数据构建问答系统(2)

本文将用 智能体(Agent) 实现对 SQLite 数据库的查询&#xff1a;用户用自然语言提出问题&#xff0c;智能体也用自然语言根据数据库的查询结果回答问题。 本次将分别在英文、中文环境下&#xff0c;使用 qwen2.5 、 MFDoom/deepseek-r1-tool-calling:7b 以及 llama3.1 做实验。…

nodejs npm install、npm run dev运行的坎坷之路

1、前面的种种都不说了&#xff0c;好不容易运行起来oap-portal项目&#xff0c;运行idm-ui项目死活运行不起来&#xff0c;各种报错&#xff0c;各种安装&#xff0c;各种卸载nodejs&#xff0c;卸载nvm&#xff0c;重装&#xff0c;都不好使。 2、甚至后来运行npm install会…

gotool在线工具集

1. 包含各种 sql 处理 2. 包含 json 处理 3. 包含 图片处理 4. 跨平台传输 gotool

猿大师播放器:智慧交通Web网页低延迟播放监控RTSP H.265视频解决方案

在智慧城市建设加速推进的今天&#xff0c;智慧交通作为城市"神经系统"正面临前所未有的发展机遇。据统计&#xff0c;2023年全国交通视频监控设备保有量已突破4500万台&#xff0c;日均产生的视频数据量超50PB。但在这些庞大数字背后&#xff0c;行业却普遍面临着&q…