linux - 使 strlcpy 在 linux 中可用
问题描述
我正在尝试编译最初编写的源代码,FreeBSD
并且由于strlcpy 不包含在 linux GlibC中,所以我现在在这个阶段停止了。
GCC 建议我可以使用strncpy但我不想实际更改源代码。
我需要重新编译我的 LibC 吗?
任何帮助表示赞赏。
解决方案
移植 BSD 应用程序的最佳解决方案是libbsd;它已经为大多数系统打包。
在基于 Debian 的系统上,开发包名为libbsd-dev
.
您可以通过将以下内容添加到 CFLAGS: 来编译未修改的 BSD 源代码
-DLIBBSD_OVERLAY -I/usr/include/bsd
,并使用-lbsd
.
但是,如果你打算分发你的构建系统,你应该使用包pkg-config
而不是硬编码这些值。libbsd-overlay
推荐阅读
- aws-lambda - 使用 dynamoDB 在 lambda 中时间戳过期时更改属性的状态
- javascript - 这里的 useRef 内部发生了什么?
- python - 为什么矩阵乘法与灰度图像矩阵会给出错误的输出?
- python-3.x - wxPython - 不能在 __init__ 中调用类方法
- html - 悬停在其行上时如何更改特定表格单元格的颜色?
- angular - 如何使用 ngModel 错误检查将模板名称添加到动态输入
- python - 在 ParDo 上返回我自己的一个类时,数据流管道会引发 PicklingError
- javascript - POSTMAN Node.js 中的无限发送请求
- css - 比较 CSS 中的屏幕宽度和高度
- java - 为什么我们可以使用 ChannelInboundHandlers 进行出站操作?