我正在尝试编译最初为FreeBSD编写的源代码,并且由于strlcpy isn't included in the linux GlibC,我现在在此阶段停止。

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

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

任何帮助表示赞赏。

最佳答案

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

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

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

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

08-16 13:16