使 strlcpy 在 Linux 中可用

Par*_*avi 7 linux gcc freebsd glibc

我正在尝试编译最初编写的源代码FreeBSD,因为strlcpy 不包含在 linux GlibC 中,所以我现在停在这个阶段。

GCC 建议我可以使用strncpy但我不想实际更改源代码。

我需要重新编译我的 LibC 吗?

任何帮助表示赞赏。

Ism*_*eno 7

移植 BSD 应用程序的最佳解决方案是libbsd;并且它已经针对大多数系统进行了打包。

在基于 Debian 的系统上,开发包名为libbsd-dev

您可以通过将以下内容添加到 CFLAGS: -DLIBBSD_OVERLAY -I/usr/include/bsd并链接到 来编译未修改的 BSD 源代码-lbsd

但是,如果您打算分发构建系统,则应该pkg-config与包一起使用,而不是对这些值进行硬编码。libbsd-overlay

  • 以下是我在 Ubuntu 上编译程序 `cc` 的方法:`gcc $(pkg-config --cflags libbsd-overlay) cc -oc $(pkg-config --libs libbsd-overlay)` (2认同)