芯来科技
直播中

李宛蔓

7年用户 981经验值
私信 关注
[问答]

在Helloworld中添加sleep()函数报错怎么解决?

我在论坛搜索了一下helloworld相关的问题,没有找到跟我相似的。
默认的helloworld代码我是能跑通的,没有问题,所以我认为开发环境应该是没有问题的。
我想在helloworld程序中,添加一个sleep函数,让它sleep 2秒之后再继续循环,然后就出错了:





而且错误是在ld的时候出错的,也就是链接的时候,好像错误是“未定义的索引sleep”。
我是添加了 #include <unistd.h> 的,如图:






按理说应该能找到的呀。
而且我右键点击sleep,然后选 Open Declaration ,能够打开unistd.h ,并且看到sleep函数的声明。
如图:






然后我又 sleep(2); 那一行给注释掉了,程序就正常了,如图:





我把循环次数改成30次了,而不是demo中的20次。

这么来看,问题应该是出在sleep这行上了。
请问如果这里想停2秒,应该怎么写呢?
谢谢!



回帖(1)

李亮

2023-8-17 09:43:52
1. sleep函数在newlib C里面并没有进行实现,所以这里即使能打开头文件,但是链接也找不到,没记错的话,sleep应该是POSIX函数,不是标准C函数库里的。
2. 想实现停顿2s的话,可以用delay_1ms(2000)来实现,这个delay是提供内核timer实现的,具体函数在gd32vf103_soc.c这个文件中
举报

更多回帖

发帖
×
20
完善资料,
赚取积分