我是靠谱客的博主 激动自行车,最近开发中收集的这篇文章主要介绍海思常用库交叉编译当前使用环境1.openssl编译后续继续更新。。。,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

当前使用环境

1.openssl编译

后续继续更新。。。


当前使用环境

  • 开发平台:ubuntu18.04.1 x86_64
  • 海思硬件:海思3516DV300
  • 交叉编译工具链:arm-himix200-linux-(其他平台及工具链类似)

1.openssl编译

  • 下载源码:/source/old/index.html ,此处我是用的是1.1.1j版本;
  • 拷贝压缩包:下载完成得到openssl-1.1.1j.tar.gz压缩包,使用samba或其他方式拷贝到linux下(开发平台),放入工作目录(可自定义),如:/home/research/;
  • 解压压缩包:进入工作目录,使用tar zxvf openssl-1.1.1j.tar.gz解压,得到文件夹openssl-1.1.1j;
lcc@zhixun-kf:~/research$ pwd
/home/lcc/research
lcc@zhixun-kf:~/research$ ls
openssl-1.1.1j.tar.gz
lcc@zhixun-kf:~/research$ tar zxvf openssl-1.1.1j.tar.gz
.
.
.
lcc@zhixun-kf:~/research$ ls
openssl-1.1.1j  openssl-1.1.1j.tar.gz
  • 生成Makefile:进入目录,使用如下命令生成Makefile文件;
lcc@zhixun-kf:~/research$ cd openssl-1.1.1j/
lcc@zhixun-kf:~/research/openssl-1.1.1j$ pwd
/home/lcc/research/openssl-1.1.1j
lcc@zhixun-kf:~/research/openssl-1.1.1j$ ./config no-asm no-shared --prefix=/home/lcc/research/openssl-1.1.1j/install_my
Operating system: x86_64-whatever-linux2
Configuring OpenSSL version 1.1.1j (0x101010afL) for linux-x86_64
Using os-specific seed configuration
Creating configdata.pm
Creating Makefile

**********************************************************************
***                                                                ***
***   OpenSSL has been successfully configured                     ***
***                                                                ***
***   If you encounter a problem while building, please open an    ***
***   issue on GitHub <https://github.com/openssl/openssl/issues>  ***
***   and include the output from the following command:           ***
***                                                                ***
***       perl configdata.pm --dump                                ***
***                                                                ***
***   (If you are new to OpenSSL, you might want to consult the    ***
***   'Troubleshooting' section in the INSTALL file first)         ***
***                                                                ***
**********************************************************************
lcc@zhixun-kf:~/research/openssl-1.1.1j$ ls
ACKNOWLEDGEMENTS  AUTHORS     config         Configurations  crypto  engines   FAQ      INSTALL   ms             NOTES.DJGPP  NOTES.VMS  README         ssl    util
apps              build.info  config.com     Configure       demos   e_os.h    fuzz     LICENSE   NEWS           NOTES.PERL   NOTES.WIN  README.ENGINE  test   VMS
appveyor.yml      CHANGES     configdata.pm  CONTRIBUTING    doc     external  include  Makefile  NOTES.ANDROID  NOTES.UNIX   os-dep     README.FIPS    tools
lcc@zhixun-kf:~/research/openssl-1.1.1j$ 

如果要编译动态库,则把no-shared改为shared,--prefix指定编译目录。

  • 修改Makefile:修改Makefile文件
    • 删除-m64,使其编译32位版本,如果需要64位版本则忽略此步骤;
    • 指定编译器:

     修改为 

                 修改为  

  • 编译源码:使用make -j8 及 make install 编译;

make -j8
make install
  • 查看结果:进入install_my目录查看生成结果
lcc@zhixun-kf:~/research/openssl-1.1.1j$ cd install_my/
lcc@zhixun-kf:~/research/openssl-1.1.1j/install_my$ ls
bin  include  lib  share  ssl
lcc@zhixun-kf:~/research/openssl-1.1.1j/install_my$ 
  • 测试demo:进入install_my,使用vi test.cpp新建测试demo源码,粘贴以下内容
#include "openssl/md5.h"
#include <string>

#define MD5LENTH 16
unsigned char MD5result[MD5LENTH];

int main()
{
        std::string strText = "xiangnan";
        MD5_CTX md5_ctx;
        MD5_Init(&md5_ctx);
        MD5_Update(&md5_ctx, strText.c_str(), strText.length());
        MD5_Final(MD5result, &md5_ctx);

        printf("MD5:");
        for (int i = 0; i < MD5LENTH; i++)
        {
                printf("%02x", MD5result[i]);
        }
        printf("n");

        MD5((const unsigned char*)strText.c_str(), strText.length(), MD5result);
        printf("MD5:");
        for (int i = 0; i < MD5LENTH; i++)
        {
                printf("%02x", MD5result[i]);
        }
        printf("n");
}

保存退出后,使用如下指令编译生成demo;

arm-gcc6.3-linux-uclibceabi-g++ -o test test.cpp -I./include -L./lib -lssl -lcrypto -static

挂在板子运行,运行demo,完成编译测试工作。

后续继续更新。。。

最后

以上就是激动自行车为你收集整理的海思常用库交叉编译当前使用环境1.openssl编译后续继续更新。。。的全部内容,希望文章能够帮你解决海思常用库交叉编译当前使用环境1.openssl编译后续继续更新。。。所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部