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

复制代码
相关推荐
Christal_pyy6 分钟前
树莓派4基于Debian GNU/Linux 12 (Bookworm)添加多个静态ipv4网络
linux·网络·debian
csbDD1 小时前
2025年网络安全(黑客技术)三个月自学手册
linux·网络·python·安全·web安全
Natsuagin3 小时前
轻松美化双系统启动界面与同步时间设置(Windows + Ubuntu)
linux·windows·ubuntu·grub
我们的五年4 小时前
【Linux网络编程】应用层协议HTTP(请求方法,状态码,重定向,cookie,session)
linux·网络·http
我们的五年5 小时前
【Linux网络】TCP/IP地址的有机结合(有能力VS100%???),IP地址的介绍
linux·运维·网络·tcp/ip
davenian6 小时前
< OS 有关 > Ubuntu 24 SSH 服务器更换端口 in jp/us VPSs
linux·ubuntu·ssh
诚信爱国敬业友善7 小时前
GUI编程(window系统→Linux系统)
linux·python·gui
sekaii7 小时前
ReDistribution plan细节
linux·服务器·数据库
YH_DevJourney7 小时前
Linux-C/C++《C/8、系统信息与系统资源》
linux·c语言·c++
威哥爱编程8 小时前
Linux驱动开发13个实用案例
linux