当前位置: 首页 > news >正文

wolfSSL5.6.3 虚拟机ubuntu下编译运行记录(踩坑填坑)

        网上相关教程很多(包括wolfSSL提供的手册上也是如此大而化之的描述),大多类似如下步骤:

./configure  //如果有特殊的要求的话可以在后面接上对应的语句,比如安装目录、打开或关闭哪些功能等等
make
make install

然后结束,大体没毛病,但是从wolfSSL官网(官网下载会首先让你填写好个人信息,然后选择同意协议,再提交,但是我提交时出现空白网页的问题,没效果,于是重新打开浏览器,个人信息保持空白,相关协议同意,选择要下的版本,点击DOWNLOAD按钮,第一次会重新回到填写个人信息界面,不用管,直接重复第一步的步骤,勾选要下载的版本,点击同意协议,再点击DOWNLOAD按钮,就可以下载了,可能是个BUG,但是也不要窃喜,因为下载的速度比较慢,很难完成最终的下载,建议去GitHub上下载)或GitHub上下载的源代码工程中没有直接提供configure,而是只有configure.ac,无法直接就来配置生成Makefile文件。

        本文主要还是描述处理./configure之前的事情。

1 configure.ac --> configure

        从网上找到一幅生成configure文件之前的一些文件之间的联系图,

步骤也就一目了然了,如下:

#aclocal
aclocal -I /usr/share/aclocal-1.14 -I /usr/share/libtool/m4 --install
autoconf
autoheader
automake --add-missing

         其中aclocal这行我稍微解释一下(大坑),如果直接aclocal->autoconf->autoheader,都没问题,但是在执行automake --add-missing命令时会出现类似于Libtool library used but 'LIBTOOL' is undefined这样的问题,原因部分网友也有所解答,aclocal负责扫描configure.ac中所有的宏定义并展开,但是在扫描到LIBTOOL宏的定义之处时没有找到。

        /usr/share/路径下可能会有多个aclocal文件夹(比如我的Ubuntu里面有仨:/usr/share/aclocal、/usr/share/aclocal-1.14、/usr/share/aclocal-1.4),开始时我指定的一直是aclocal文件夹,上面的问题一直出现,所以如果遇到类似的问题,不妨先确定有几个aclocal,然后逐个尝试。

        /usr/share/libtool这个文件夹我的Ubuntu里面没找到(小坑),在前期试错的过程中,曾经尝试直接通过autoreconf  -ivf命令生成configure命令,也的确生成了,但是在后面的步骤中出现了LT_PREREQ(2.4.2)的问题,可能是系统中的libtool版本过低或者未安装的问题,于是乎通过sudo apt-get install libtool或者从这个网站下载源码包(我下的2.4.7版本)进行手动安装(./configure-->make-->make install),并将解压完成后的libtool-2.4.7文件夹(上述的配置安装命令也是在这个文件夹内进行操作的)复制到/usr/shar路径,重命名为libtool。

        还有一点需要特别注意,wolfSSL源码路径下没有build-aux这个文件夹,在automake时会出现没有找到build-aux目录错误,这时可以直接将libtool路径下的build-aux文件夹拷贝到wolfSSL源码主路径下。

        至此,一个完整的configure文件已经完成!

2 make && make install

        执行./configure命令使其生成Makefile,最后按顺序依次执行make及make install命令,正常来讲,源代码./configure自己生成的Makefile应该是没啥毛病的才对,但是我在执行make install命令时,

王德法,突然冒出这么个东西???

        通过各种搜索,了解到这是Makefile文件里面的一些什么空格、换行、制表符的问题,通过notepad++打开Makefile,首先设置下notepad++(视图->显示符号),将换行/制表符显示出来,其中制表符(tab)它会显示成--->,空格会显示成·,按照提示搜索到相关的行,将原先的制表符删除,再从键盘上补上一个TAB,保存后重新make install,终于结束了!<但是它也没个类似于success的提示,--|>

        上图是其在默认路径下生成的libwolfssl.*库文件,wolfSSL源工程代码路径下(src)也生成了一份.la的库文件,同时查看tests和testsuite两个文件下,一些例子也已经编译完成,根据官方手册第18页的提示,验证下是否真的build成功,运行:

./testsuite/testsuite.test

 

All tests passed! 没毛病!

 再运行个server/client例子,如下:

        每个人的系统环境都是不一样的,文中出现的问题及解决方法不一定适用所有人,碰到问题还是需要自己审查判断尝试解决,至于一些配置选项,最好的参考就是官方提供的手册。

        Linux安装告一段落,后续交叉编译移植到cortex-a9开发板,届时如有大坑小沟,应该可以有一篇文章记录之。

相关文章:

wolfSSL5.6.3 虚拟机ubuntu下编译运行记录(踩坑填坑)

网上相关教程很多(包括wolfSSL提供的手册上也是如此大而化之的描述)&#xff0c;大多类似如下步骤&#xff1a; ./configure //如果有特殊的要求的话可以在后面接上对应的语句&#xff0c;比如安装目录、打开或关闭哪些功能等等 make make install 然后结束&#xff0c;大体…...

JAVA SE -- 第十六天

&#xff08;全部来自“韩顺平教育”&#xff09; IO流 一、文件 是保存数据的地方 2、文件流 文件在程序中是以流的形式来操作 流&#xff1a;数据在数据源&#xff08;文件&#xff09;和程序&#xff08;内存&#xff09;之间经历的路径 输入流&#xff1a;数据从数据…...

基于EIoT能源物联网的工厂智能照明系统应用改造-安科瑞黄安南

【摘要】&#xff1a;随着物联网技术的发展&#xff0c;许多场所针对照明合理应用物联网照明系统&#xff0c;照明作为工厂的重要能耗之一&#xff0c;工厂的照明智能化控制&#xff0c;如何优化控制、提高能源的利用率&#xff0c;达到节约能源的目的。将互联网的技术应用到工…...

docker-compose启动tomcat服务

docker-compose启动tomcat服务 编写docker-compose.yaml文件 version: "3.1" services:tomcat: restart: always image: tomcat:8.0.52 container_name: tomcat ports:- 8082:8080 environment:TZ: Asia/Shanghai volumes:- /usr/local/webapps/:/usr/local/t…...

10.多线程

文章目录 10.1简述线程、程序、进程的基本概念。以及他们之间关系是什么?10.2线程有哪些基本状态? 10.1简述线程、程序、进程的基本概念。以及他们之间关系是什么? 线程与进程相似&#xff0c;但线程是一个比进程更小的执行单位。一个进程在其执行的过程中可以产生多个线程…...

【有关数据库的编码格式和导出备份】

问题1&#xff1a;前端页面可以正常插入数据到数据库mysql中&#xff0c;但是却显示不了数据库中的数据内容&#xff1f; 分析&#xff1a;通过尝试&#xff0c;当数据插入的全部都是英文时&#xff0c;可以正常显示数据&#xff0c;但是出现中文时&#xff0c;则连带着全部数…...

直播招聘小程序解决方案

项目开发愿景 介绍工作拿佣金&#xff0c;Boss直播现真身。做为直播招聘的新平台&#xff0c;让求职和招聘变得更简单&#xff01;企业发布招聘视频&#xff0c;展现公司环境与实力&#xff0c;开通会员可以直播招聘、在线面试功能&#xff1b;求职者刷视频可以刷到工作…...

HadoopWEB页面上传文件报错Couldn‘t upload the file course_info.txt

HadoopWEB页面上传文件报错Couldn’t upload the file course_info.txt 右键F2检查发现&#xff1a;文件上传PUT操作的IP地址是节点IP别名识别不到导致 解决方法&#xff1a;在WEB页面访问浏览器所在机器上面配置hosts映射地址(注意:配置的是浏览器访问的地址不是hadoop节点所在…...

面试热题(倒数第k个结点)

输入一个链表&#xff0c;输出该链表中倒数第k个节点。为了符合大多数人的习惯&#xff0c;本题从1开始计数&#xff0c;即链表的尾节点是倒数第1个节点。 例如&#xff0c;一个链表有 6 个节点&#xff0c;从头节点开始&#xff0c;它们的值依次是 1、2、3、4、5、6。这个链表…...

EVE-NG MPLS 静态 LSP

1 拓扑 2 配置步骤 2.1 配置接口IP 和路由 LER1 interface GigabitEthernet1/0ip address 10.1.1.1 255.255.255.0quitinterface GigabitEthernet2/0ip address 11.1.1.1 255.255.255.0quitip route-static 21.1.1.0 24 10.1.1.2VPC1 ip 11.1.1.100/24 11.1.1.1 配置完成后…...

华秋亮相2023世界汽车制造技术暨智能装备博览会,推动汽车产业快速发展

洞悉全球汽车产业格局&#xff0c;前瞻业界未来趋势。2023年7月27日-30日&#xff0c;时隔三年&#xff0c;重聚武汉国际博览中心&#xff0c;2023世界汽车制造技术暨智能装备博览会盛大开幕。深耕汽车行业多年的世界汽车制造技术暨智能装备博览会&#xff0c;掀起行业热点新高…...

华为OD机试真题【开心消消乐】

1、题目描述 【开心消消乐】 给定一个N行M列的二维矩阵&#xff0c;矩阵中每个位置的数字取值为0或1。矩阵示例如&#xff1a; 1100 0001 0011 1111 现需要将矩阵中所有的1进行反转为0&#xff0c;规则如下&#xff1a; 1&#xff09; 当点击一个1时&#xff0c;该1便被反转为…...

txt去重

目录 txt去重 让我解释一下代码的逻辑&#xff1a; for a in [a.strip(\n) for a in list(f_read)]: txt去重 f_read open(r./1.txt, r, encodingutf-8) f_write open(r./2.txt, w,encodingutf-8) data set() for a in [a.strip(\n) for a in list(f_read)]:if a not in …...

系统集成测试与验收

功能性测试&#xff1a;测试系统应提供的每一个功能和安全性限制&#xff0c;检查系统是否已 正常实现所有功能。 连通性测试&#xff1a;测试网络上任意站点间是否能够相互传输数据&#xff0c;测试各个终端 能否登录中心服务器&#xff0c;并访问数据库&#xff0c;对数据库…...

ElementPlus文件上传 ,在上传前钩子中判断文件是否为图片

在ElementPlus中&#xff0c;可以使用beforeUpload属性来指定上传文件之前的钩子函数&#xff0c;在该函数中可以对文件进行判断并进行相关操作。 首先&#xff0c;在data中定义一个isImage变量来记录文件是否为图片&#xff0c;初始值为false。然后&#xff0c;在钩子函数中判…...

涂鸦智能获Matter Non-VID Scoped PAA资质 助力开发者拥抱Matter生态

今年5月&#xff0c;全球化IoT开发者平台涂鸦智能&#xff08;NYSE: TUYA&#xff0c;HKEX: 2391&#xff09;正式生成Tuya Matter PAA密钥根&#xff0c;并于7月&#xff0c;成功通过了连接标准联盟和第三方MA机构审查而上线。自此&#xff0c;涂鸦正式成为全球同时提供支持Ma…...

nsqd的架构及源码分析

文章目录 一 nsq的整体代码结构 二 回顾nsq的整体架构图 三 nsqd进程的作用 四 nsqd启动流程的源码分析 五 本篇博客总结 在博客 nsq整体架构及各个部件作用详解_YZF_Kevin的博客-CSDN博客 中我们讲了nsq的整体框架&#xff0c;各个部件的大致作用。如果没看过的&…...

​LeetCode解法汇总344. 反转字符串

目录链接&#xff1a; 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目&#xff1a; https://github.com/September26/java-algorithms 原题链接&#xff1a;力扣 描述&#xff1a; 编写一个函数&#xff0c;其作用是将输入的字符串反转过来。输入字符串以字符数…...

【C语言基础】数组的高级应用(上)

文章目录 一、数组的概念1.1 基本理解1.2 从内存角度理解数组1.3 从编译器角度理解数组 二、数组的定义2.1 第一种&#xff1a;完全初始化2.2 第二种&#xff1a;不完全初始化 三、访问数组的两种方式3.1 第一种&#xff1a;数组的方式依次访问3.2 第二种&#xff1a;指针的方式…...

面试题:bind、call、apply 区别?如何实现一个 bind?

面试题&#xff1a;bind、call、apply 区别&#xff1f;如何实现一个 bind? 一、call()代码描述&#xff1a; 二、apply()代码描述&#xff1a; 三、bind()—最重要代码描述&#xff1a; 四、call、apply、bind 总结 一、call() 代码描述&#xff1a; 二、apply() 代码描述&am…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性&#xff0c;不同版本的Docker对内核版本有不同要求。例如&#xff0c;Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本&#xff0c;Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

C++初阶-list的底层

目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...

(十)学生端搭建

本次旨在将之前的已完成的部分功能进行拼装到学生端&#xff0c;同时完善学生端的构建。本次工作主要包括&#xff1a; 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具

作者&#xff1a;来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗&#xff1f;了解下一期 Elasticsearch Engineer 培训的时间吧&#xff01; Elasticsearch 拥有众多新功能&#xff0c;助你为自己…...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡&#xff08;如 HAProxy、AWS NLB、阿里 SLB&#xff09;发起上游连接时&#xff0c;将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后&#xff0c;ngx_stream_realip_module 从中提取原始信息…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

DBAPI如何优雅的获取单条数据

API如何优雅的获取单条数据 案例一 对于查询类API&#xff0c;查询的是单条数据&#xff0c;比如根据主键ID查询用户信息&#xff0c;sql如下&#xff1a; select id, name, age from user where id #{id}API默认返回的数据格式是多条的&#xff0c;如下&#xff1a; {&qu…...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...