(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是什么

下一篇:Toad Data Modeler 数据库建模工具


蚂蚁钢琴网 2008-2025 www.somall.com.cn 皖ICP备2023010105号 大写数字 热点城市 热点地区 热点街道 热点时间 房贷计算器
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!点击这里给我发消息
违法和不良信息24小时举报热线:18056540210 钢琴调律 钢琴调音 钢琴调律价格 网速测试 宽带网速测试