承接上篇,我们初步了解了mbedtls的文件路径以及文件作用以后就是想着如何将mbedtls移植到各种平台。
博主这里移植到非windows工具中去,博主这里移植比较小众的编译器CodeBlocks.
移植到CodeBlocks中比移植到VS中药稍微复杂点,可以看到,博主基本没有更改过什么内容,只是将VS工程代码复制过去,并将工程搭建起来,这里博主给出搭建的方法。
1.随便建立一个空的CodeBlocks C工程,如下所示。
这里要主要的一点是include头文件一点要和CodeBlocks工程文件放到同一路径下,不然不管怎么添加头文件都会报错。
2. 将library文件添加到CodeBlocks工程,以及头文件添加进去,,头文件可以采用相对路径,如图所示。
注意工程选择debug模式,库文件也需要添加到debug模式下,如果1,2标注所示。
3. 博主的CodeBlocks使用的是GCC编译的,所以有些VS违反C标准的函数是使用不了的,可以看到博主编译出现报错,但是在VS编译却是成功的。
4.解决GCC编译错误,博主这里看到所有报错的编译都是Net下的函数的,那么直接将config.h下的
MBEDTLS_NET_C禁止掉上面错误就会消失,但是会出现windows专门的函数gmtime_s报错,如下
直接将这个函数使用的地方屏蔽掉就能解决这个错误。gmtime_s属于windows独有的函数,在Gcc编译器中是不存在这个函数的。