未定义对 `strnstr' 的引用,如何修复并运行 strnstr

3

我需要复现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


3
不要告诉我们你尝试了什么,而是展示给我们你尝试了什么。 - Christian Gibbons
1
这是一个BSD函数,因此在使用GCC的Linux中通常不可用。要么重新实现它,要么重写使用它的代码以执行不同的操作。 - unwind
1个回答

5

标准C或POSIX中没有名为strnstr的函数。在glibc / Linux中也没有。 它似乎是FreeBSD函数

我知道strnstr()不在标准库中,问题可能与编译器有关,但如何修复以使用strnstr()?

不确定您为什么认为这是编译器问题(除非您认为它是编译器内置)。如果您的C库未提供它,则无法使用。

因此,如果您的系统上没有该函数(可能您未使用BSD系统),则可以实现它。您可以查看现有实现


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接