(strnstr)对“strnstr”的未定义引用如何修复它并运行strnstr
时间:2023-11-23 11:50 文章来源于网友投稿,仅供参考!
【问题描述】: 我需要重现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是什么