编译mbedtls

wolfssl是GPL2.0,无法商用,只能尝试mbedtls,这个是免费开源的。

下载地址:https://gitee.com/Kono2019/mbedtls.git

github经常上不了,gitee比较方便。

下载完了,怎么编译呢,我需要编译riscv的。

一开始通过cmake -DCMAKE_C_COMPILER=riscv-nuclei-elf-gcc,会编一个test的程序,但是很快报“error: unrecognized command line option '-rdynamic'”,说我的gcc不支持dynamic,折腾了半天也没解决。

然后直接export CC=riscv-nuclei-elf-gcc 

make

编起来了,但报了一些错误,这些错误都可以通过配置include/mbedtls/config.h解决:

我修改是这样的:

注释掉了:

MBEDTLS_FS_IO,

MBEDTLS_NET_C,

MBEDTLS_PSA_CRYPTO_STORAGE_C,

MBEDTLS_PSA_ITS_FILE_C,

MBEDTLS_TIMING_C。

定义了:

MBEDTLS_NO_PLATFORM_ENTROPY。

顺利编译通过。

然后make install。

后续:        

        当我把编译出的三个Lib库放到SDK中,link的时候却报错:

 原来我的sdk设置的arch和abi是RISCV_ARCH=rv32imac RISCV_ABI=ilp32,是不支持double float的,但是我在编译mbedtls的时候并没有指定arch和abi,默认是rv32imfd好像,所以不匹配,

于是重新编译mbedtls,折腾了半天,mbedtls的Makefile分散在多个目录下,而且有点不光要改CFLAGS还得改LDFLAGS,反正就是指定-march=rv32imac -mabi=ilp32就行。最后编译成功,把新生成的库放到sdk中,编译link成功!!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值