【发布时间】:2020-09-11 20:54:46
【问题描述】:
我正在尝试编译最初为 FreeBSD 编写的源代码,并且由于 strlcpy isn't included in the linux GlibC ,我现在在这个阶段停止了。
GCC 建议我可以使用strncpy,但我不想实际更改源代码。
我需要重新编译我的 LibC 吗?
感谢任何帮助。
【问题讨论】:
-
您是否包含正确的标题? linux.die.net/man/3/strlcpy
-
@KamilCuk 问题出在这里:在 BSD 中,“#include
”中的“bsd/”部分是不必要的(实际上是禁止的)。但我没有 BSD 版本的 string.h 。所以我正在寻找一种安装它的方法。 -
那么我在哪里可以找到 string.h 的 BSD 版本并将其放在某个地方,最后在 makefile 的“CFLAGS”中添加一些标志?
-
你没有
/usr/include/bsd/string.h吗?然后使用您的 linux 分发包管理器安装它们。在我的 archlinux 上,它归extra/libbsd包所有。 -
@ParsaMousavi:您可以使用
apt-file找出哪个(卸载的)包包含文件。它非常有用。apt-file search /usr/include/bsd/string.h报告该文件在包中libbsd-dev,正如 Ismael 的回答所说。