对“strnstr”的未定义引用如何修复它并运行 strnstr

ivo*_*iik 3 c gcc string.h

我需要重现strnstr功能的行为。我想测试strnstr但无法编译程序,其编写的"implicit declaration of function strnstr [-Wimplicit-function-declaration]""undefined reference to strnstr". 我包括了 header <string.h>

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

编译器版本:gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609

P.P*_*.P. 5

没有strnstr在标准 C 或 POSIX 中命名的函数。它也不在 glibc/Linux 中。看来是FreeBSD的功能

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

不确定为什么您认为这是编译器问题(除非您认为这是编译器固有的)。如果它不是由您的 C 库提供,则它不可用。

因此,如果它在您的系统上不可用(可能您没有使用 BSD 系统),那么您可以实现它。您可以查看现有的实现