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提供的手册上也是如此大而化之的描述),大多类似如下步骤: ./configure //如果有特殊的要求的话可以在后面接上对应的语句,比如安装目录、打开或关闭哪些功能等等 make make install 然后结束,大体…...
JAVA SE -- 第十六天
(全部来自“韩顺平教育”) IO流 一、文件 是保存数据的地方 2、文件流 文件在程序中是以流的形式来操作 流:数据在数据源(文件)和程序(内存)之间经历的路径 输入流:数据从数据…...
基于EIoT能源物联网的工厂智能照明系统应用改造-安科瑞黄安南
【摘要】:随着物联网技术的发展,许多场所针对照明合理应用物联网照明系统,照明作为工厂的重要能耗之一,工厂的照明智能化控制,如何优化控制、提高能源的利用率,达到节约能源的目的。将互联网的技术应用到工…...
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简述线程、程序、进程的基本概念。以及他们之间关系是什么? 线程与进程相似,但线程是一个比进程更小的执行单位。一个进程在其执行的过程中可以产生多个线程…...
【有关数据库的编码格式和导出备份】
问题1:前端页面可以正常插入数据到数据库mysql中,但是却显示不了数据库中的数据内容? 分析:通过尝试,当数据插入的全部都是英文时,可以正常显示数据,但是出现中文时,则连带着全部数…...
直播招聘小程序解决方案
项目开发愿景 介绍工作拿佣金,Boss直播现真身。做为直播招聘的新平台,让求职和招聘变得更简单!企业发布招聘视频,展现公司环境与实力,开通会员可以直播招聘、在线面试功能;求职者刷视频可以刷到工作…...
HadoopWEB页面上传文件报错Couldn‘t upload the file course_info.txt
HadoopWEB页面上传文件报错Couldn’t upload the file course_info.txt 右键F2检查发现:文件上传PUT操作的IP地址是节点IP别名识别不到导致 解决方法:在WEB页面访问浏览器所在机器上面配置hosts映射地址(注意:配置的是浏览器访问的地址不是hadoop节点所在…...
面试热题(倒数第k个结点)
输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。 例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 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世界汽车制造技术暨智能装备博览会,推动汽车产业快速发展
洞悉全球汽车产业格局,前瞻业界未来趋势。2023年7月27日-30日,时隔三年,重聚武汉国际博览中心,2023世界汽车制造技术暨智能装备博览会盛大开幕。深耕汽车行业多年的世界汽车制造技术暨智能装备博览会,掀起行业热点新高…...
华为OD机试真题【开心消消乐】
1、题目描述 【开心消消乐】 给定一个N行M列的二维矩阵,矩阵中每个位置的数字取值为0或1。矩阵示例如: 1100 0001 0011 1111 现需要将矩阵中所有的1进行反转为0,规则如下: 1) 当点击一个1时,该1便被反转为…...
txt去重
目录 txt去重 让我解释一下代码的逻辑: 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 …...
系统集成测试与验收
功能性测试:测试系统应提供的每一个功能和安全性限制,检查系统是否已 正常实现所有功能。 连通性测试:测试网络上任意站点间是否能够相互传输数据,测试各个终端 能否登录中心服务器,并访问数据库,对数据库…...
ElementPlus文件上传 ,在上传前钩子中判断文件是否为图片
在ElementPlus中,可以使用beforeUpload属性来指定上传文件之前的钩子函数,在该函数中可以对文件进行判断并进行相关操作。 首先,在data中定义一个isImage变量来记录文件是否为图片,初始值为false。然后,在钩子函数中判…...
涂鸦智能获Matter Non-VID Scoped PAA资质 助力开发者拥抱Matter生态
今年5月,全球化IoT开发者平台涂鸦智能(NYSE: TUYA,HKEX: 2391)正式生成Tuya Matter PAA密钥根,并于7月,成功通过了连接标准联盟和第三方MA机构审查而上线。自此,涂鸦正式成为全球同时提供支持Ma…...
nsqd的架构及源码分析
文章目录 一 nsq的整体代码结构 二 回顾nsq的整体架构图 三 nsqd进程的作用 四 nsqd启动流程的源码分析 五 本篇博客总结 在博客 nsq整体架构及各个部件作用详解_YZF_Kevin的博客-CSDN博客 中我们讲了nsq的整体框架,各个部件的大致作用。如果没看过的&…...
LeetCode解法汇总344. 反转字符串
目录链接: 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣 描述: 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数…...
【C语言基础】数组的高级应用(上)
文章目录 一、数组的概念1.1 基本理解1.2 从内存角度理解数组1.3 从编译器角度理解数组 二、数组的定义2.1 第一种:完全初始化2.2 第二种:不完全初始化 三、访问数组的两种方式3.1 第一种:数组的方式依次访问3.2 第二种:指针的方式…...
面试题:bind、call、apply 区别?如何实现一个 bind?
面试题:bind、call、apply 区别?如何实现一个 bind? 一、call()代码描述: 二、apply()代码描述: 三、bind()—最重要代码描述: 四、call、apply、bind 总结 一、call() 代码描述: 二、apply() 代码描述&am…...
Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,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.…...
(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...
JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
