我正在尝试编译最初为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
,而不是对这些值进行硬编码。