当前位置: 首页 > 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开发板,届时如有大坑小沟,应该可以有一篇文章记录之。

http://www.lryc.cn/news/112879.html

相关文章:

  • JAVA SE -- 第十六天
  • 基于EIoT能源物联网的工厂智能照明系统应用改造-安科瑞黄安南
  • docker-compose启动tomcat服务
  • 10.多线程
  • 【有关数据库的编码格式和导出备份】
  • 直播招聘小程序解决方案
  • HadoopWEB页面上传文件报错Couldn‘t upload the file course_info.txt
  • 面试热题(倒数第k个结点)
  • EVE-NG MPLS 静态 LSP
  • 华秋亮相2023世界汽车制造技术暨智能装备博览会,推动汽车产业快速发展
  • 华为OD机试真题【开心消消乐】
  • txt去重
  • 系统集成测试与验收
  • ElementPlus文件上传 ,在上传前钩子中判断文件是否为图片
  • 涂鸦智能获Matter Non-VID Scoped PAA资质 助力开发者拥抱Matter生态
  • nsqd的架构及源码分析
  • ​LeetCode解法汇总344. 反转字符串
  • 【C语言基础】数组的高级应用(上)
  • 面试题:bind、call、apply 区别?如何实现一个 bind?
  • 【SpringBoot学习笔记】01.第一个程序HelloWorld
  • 【学会动态规划】买卖股票的最佳时机含手续费(16)
  • 网络原因导致git下载报错处理办法
  • APP后端选择什么服务器
  • 什么是反射机制,反射机制的应用场景
  • Visual Studio 2019 实用功能设置(背景颜色,代码字体及行号设置)
  • 简述Mysql索引
  • windows .gitignore 加入文件名后 依然可以从git status中看到文件问题
  • 召唤神龙打造自己的ChatGPT
  • 裝修公司同室內設計公司有咩分別?
  • android oaid