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…...
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...
学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...
Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...
使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台
🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...
RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)
RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发,后来由Pivotal Software Inc.(现为VMware子公司)接管。RabbitMQ 是一个开源的消息代理和队列服务器,用 Erlang 语言编写。广泛应用于各种分布…...
