• 关于openssl的交叉编译


    最*有个*台软件模块需要依赖openssl,于是去openssl的官方网站上下载了最新的版本,v1.1.1b版本。

    解压之后,发现配置编译,可以使用./config或者./Configure来完成。

    网上也查了一些交叉编译的说明,经常在config之后,但是大都还要手动的修改makefile才行。

    这就让我这种需要为N个交叉编译环境提供*台库文件的人头疼了。

    但是仔细一想,openssl这种用途如此广的开源库,在交叉编译应该做得很好才对啊!

    于是打开config脚本,稍微研究了一下,其实交叉编译也是可以配置的,并不需要config之后,再手动改makefile。

    ./config no-asm shared --prefix=/home/xxx/git_base/openssl/release/himix100 CROSS_COMPILE=/opt/xxx/aarch64-himix100-linux/bin/aarch64-himix100-linux- CC=gcc

    只要修改环境变量CROSS_COMPILE和CC,即可完成编译的配置,这样我成功为Hi3559A编译了openssl库。

    但是接下来,进行hisiv500编译器的配置时,又遇到问题了。

    其一是,编译时,有很多告警,一看就是由于32位编译器与64位源码之间的不兼容告警。

    其二是,hisiv500编译器是不提供GNU C的ucontext库的,所以最后一些tools的链接会有些函数找不到。

    继续查看config文件,没有找到如何配置系统的位宽。

    这时,尝试常规的Configure --help,原来Configure里面是可以配置的。

    ./Configure linux-generic32 no-asm shared no-async --prefix=/home/xxx/git_base/openssl/release/hisiv500/ CROSS_COMPILE=/opt/xxx/arm-hisiv500-linux/bin/arm-hisiv500-linux-uclibcgnueabi- CC=gcc

    no-async的作用是不使用GNU的ucontext库

    linux-generic32表示是32位操作系统

    --prefix表示istall时的文件输出目录

    如此一来,hisiv500也编译通过了。

    下一步需要测试运行看看,是否有问题了。

  • 相关阅读:
    hadoop作业
    爬虫综合大作业
    爬取全部校园新闻
    理解爬虫原理
    中文词频统计与词云生成
    复合数据类型,英文词频统计
    字符串操作、文件操作,英文词频统计预处理
    了解大数据的特点、来源与数据呈现方式
    Hadoop综合大作业
    分布式文件系统HDFS
  • 原文地址:https://www.cnblogs.com/djw316/p/10786173.html
Copyright © 2020-2023  润新知