(strnstr)对“strnstr”的未定义引用如何修复它并运行strnstr
【问题描述】:
我需要重现strnstr函数的行为。我想测试strnstr,但无法编译程序,它写成"implicit declaration of function strnstr [-Wimplicit-function-declaration]"和"undefined reference to strnstr"。我包含了标题<string.h>。
我知道strnstr()不在标准库中,问题可能与编译器有关,但如何修复它以使用strnstr()?
编译器版本:gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
【问题讨论】:
不要告诉我们你尝试了什么,告诉我们你尝试了什么。
这是一个 BSD 函数,所以它通常在带有 GCC 的 Linux 中不可用。要么重新实现它,要么重写使用它的代码做不同的事情。
标签:cgccstring.h
【解决方案1】:
在标准 C 或 POSIX 中没有名为strnstr的函数。它也不在 glibc/Linux 中。 好像是FreeBSD function。
我知道 strnstr() 不在标准库中,问题可能与编译器有关,但如何修复它以与 strnstr() 一起使用?
不确定为什么您认为这是编译器问题(除非您认为这是编译器固有问题)。如果它不是由您的 C 库提供的,那么它就是不可用的。
因此,如果它在您的系统上不可用(可能您没有使用 BSD 系统),那么您可以实现它。你可以看看existing implementation。
上一篇:AppDomain.CurrentDomain.BaseDirectory是什么
液化气是什么气体
天然气的运输方式
天然气的作用有哪些
氢气有没有毒性
氨气的危害及如何预防
液化气罐着火怎么办
家庭天然气阀门每天都要关闭吗
怎么样利用液氮保藏菌种
燃气使用注意事项
天然气怎么开采出来的