交叉编译arm程序,编译arm版本的openssl

这篇具有很好参考价值的文章主要介绍了交叉编译arm程序,编译arm版本的openssl。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

开局一个错:

openssl arm版本,学习

显示没有GCC,

于是下载gcc;

下载gcc有问题:

openssl arm版本,学习

openssl arm版本,学习

发现是换源的问题,于是换源后继续安装,安装成功:

openssl arm版本,学习

接着继续出错:

openssl arm版本,学习

继续安装库sudo apt-get install libncurses5-dev

openssl arm版本,学习

接着又报错了,我之前去的github上弄的buildroot,现在去官网下载一个。

果然运行成功了:

openssl arm版本,学习

Target options:目标板的配置

Target Architecture:目标架构,根据需要选择, 比如选择 ARM(little endian),ARM小端模式

Target Binary Format:二进制格式,根据需要选择, 比如为 ELF

Target Architecture Variant:根据需要选择, 比如架构变体为 Cortex-A9,内核类型 (vexpress-ca9)

Target ABI:应用程序二进制接口,根据需要选择, 比如为EABI

Floating point strategy:浮点数的策略,根据需要选择, 比如选择为 Soft float

ARM instruction set:arm 汇编指令集,根据需要选择, 比如选择 ARM

选择编一个arm小端的工具链来玩玩:

openssl arm版本,学习

配置好了之后直接make,

随后就是漫长的等待过程,最后还编译出错了。

openssl arm版本,学习

提示g++版本太低

openssl arm版本,学习

随后又继续跑起来了

需要下载2h:

openssl arm版本,学习

这里我放弃了,直接去外面弄得工具。

去网站https://developer.arm.com/downloads/-/gnu-a

下载

openssl arm版本,学习

利用工具链进行编译:

openssl arm版本,学习

成功arm的程序:

openssl arm版本,学习

目前跑不起来:

openssl arm版本,学习

安装sudo apt install qemu-user-static

运行:

sudo ./arm-none-linux-gnueabihf-gcc -static a.c 进行静态编译,并成功执行。

openssl arm版本,学习

openssl arm版本,学习

可以看到静态链接和动态链接差距很大:

openssl arm版本,学习

接下来编openssl:

下载并且解压:

openssl arm版本,学习

使用:

./config no-asm --prefix=/media/zzq/58586eea-29d9-4466-822e-bd9c348564e4/openssl_zzq C-cross-compile-prefix=arm-none-linux-gnueabihf-

Ps:

no-asm: 在交叉编译过程中不使用汇编代码代码加速编译过程

--prefix: 指定生成的头文件及库的路径,不修改此项则默认为 /usr/local 目录

--cross-compile-prefix: 指定交叉编译工具链命令的前缀,很可能必须以破折号结尾,例如 aarch64-linux- 将 GNU 编译器作为 arm-none-linux-gnueabihf-gcc 调用,等等。

居然显示没识别到cc,猜测是环境变量出现了问题。

openssl arm版本,学习

使用如下,把--cross-compile-prefix加上了绝对路径:

sudo ./config no-asm --prefix=/media/zzq/58586eea-29d9-4466-822e-bd9c348564e4/openssl_zzq --cross-compile-prefix=/media/zzq/58586eea-29d9-4466-822e-bd9c348564e4/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf-

成功了:

openssl arm版本,学习

把makefile里边的-m64去掉。

随后sudo make

Sudo make install

编译成功:

openssl arm版本,学习

显示没有静态链接。。。。。

openssl arm版本,学习

于是:

  1. 安装 libc6-armhf-cross, sudo apt-get install libc6-armhf-cross, 成功后会有目录 /usr/arm-linux-gnueabihf 文件夹
  2. 安装qemu-user
  3. 指定 lib 环境运行,qemu-arm -L /usr/arm-linux-gnueabihf/ ./xxx

运行:

openssl arm版本,学习

接着同样的,把相应的库文件放到/usr/arm-linux-gnueabihf/lib里边去

openssl arm版本,学习

运行成功了:

openssl arm版本,学习文章来源地址https://www.toymoban.com/news/detail-765235.html

到了这里,关于交叉编译arm程序,编译arm版本的openssl的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用CMake交叉编译Arm Linux程序

    注意,工具链文件的指定一定要紧跟cmake命令之后,不能放到 … 后面构建arm架构cmake 工程里新建一个文件叫arm_linux_setup.cmake arm_linux_setup.cmake内容如下

    2024年02月03日
    浏览(39)
  • ARM架构Linux操作系统上C语言版本的CycloneDDS中HelloWorld的编译过程(交叉编译工具链)

    ARM架构Linux操作系统上C语言版本的 CycloneDDS 中 HelloWorld 的编译过程与源码编译过程中的 roundtrip 示例编译是一样的,因为实在ARM架构上,所以需要将 idlc_generat e注释掉,自己手动添加源代码和头文件,之后在进行 cmake 和 make 操作

    2024年02月15日
    浏览(30)
  • macOS 13(本机)golang程序交叉编译成 ARM架构

    ## 背景 golang程序(JuiceFS)需要支持ARM64架构,重新编译; 本地环境:macOS:13 ## 操作 安装交叉编译工具: 可以在 /usr/local/bin 找到musl相关的工具命令 Makefile ## 参考 https://saekiraku.github.io/article/18577/ https://liujinye.gitbook.io/openshift-docs/raspberry-pi/macosgolang-bian-yi-arm-huan-jing-gosqlite3-

    2024年01月17日
    浏览(29)
  • ARM & Linux 基础学习 / 配置交叉编译工具链 / 编译 Linux 应用和驱动 / 编译内核

    编辑整理 by Staok。 本文部分内容摘自 “100ask imx6ull” 开发板的配套资料(如 百问网的《嵌入式Linux应用开发完全手册》,在 百问网 imx6ull pro 开发板 页面 中的《2.1 100ASK_IMX6ULL_PRO:开发板资料》或《2.2 全系列Linux教程:在线视频与配套资料》里面可以下载到),还有参考 菜

    2024年02月04日
    浏览(37)
  • 在linux中进行arm交叉编译体验tiny6410裸机程序开发流程

    在某鱼上找了一个友善之臂的Tiny6410开发板用来体验一下嵌入式开发。这次先体验一下裸机程序的开发流程,由于这个开发板比较老旧了,官方文档有很多过期的内容,所以记录一下整个过程。 按照光盘A中的文档《04- Tiny6410 Linux开发指南.pdf》的 1.3.5 节描述,用光盘中的 a

    2024年02月15日
    浏览(26)
  • 3:Ubuntu上配置QT交叉编译环境并编译QT程序到Jetson Orin Nano(ARM)

       GCC配置同上   最后配置Kits 上面设置完成之后 ,设置Kits 中的Device(这是为了能够直接把项目部署到arm设备上)      点击NEXT之后会出现连接被拒绝,不用担心 ,下面会对其设置密码。 验证arm设置的密码。                 代码: 此代码是抄的别人的,具体是哪位博主的

    2024年02月11日
    浏览(33)
  • QT学习笔记-oracle oci数据库驱动交叉编译并移植到ARM开发板

    在上一文《QT学习笔记-QT安装oracle oci驱动》中介绍了在Windows环境下使用QT访问oracle数据库时遇到驱动无法加载问题的解决办法,大体思路是对QT源码中数据库驱动的源码oci进行编译,要想通过编译需要依赖对应数据库的头文件和库(可以通过下载oracle instant client),编译通过

    2024年02月13日
    浏览(44)
  • 【linux踩坑】交叉编译程序时,要保持工具链版本一致

            记录交叉编译qt时踩到的一个坑:工具链版本要保持一致。          在电脑端编译开发板上的程序时,需要使用交叉编译器,比如我常用的arm-linux-gnueabi-gcc编译器,就属于arm-linux-gnueabi工具链。这个工具链内包含一系列以arm-linux-gnueabi-开头的软件,比如g++ ar

    2024年02月08日
    浏览(35)
  • ARM交叉编译入门及交叉编译第三方库常见问题解析

    交叉编译简单说来,就是编译成果物的地儿不是你运行这个成果物的地儿。最常见的场景,就是我们要编译一个 ARM版本 的可执行程序,但我们编译这个 ARM版本 可执行程序的地方,是在一个 x86_x64 的平台上。 绝大部分的原因,是目标平台不具备编译成果物的算力。具体说来

    2023年04月26日
    浏览(77)
  • arm交叉编译lmbench

      www.bitmover.com/lmbench 官网下载,http://www.bitmover.com/lmbench/lmbench3.tar.gz 我没有下载下来,找的别人的百度云下载 链接: https://pan.baidu.com/s/1tGo1clCqY-jQPN8G1eWSsg 提取码: f6jd 修改三个文件 在最后一行echo $OS前,增加 OS=arm-linux (增加行) echo $OS 在最后一行echo $CC前,增加 CC=arm-linux-gnue

    2024年02月14日
    浏览(21)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包