/usr/include/linux 中缺少 Linux 内核 crc32.h

/usr/include/linux 中缺少 Linux 内核 crc32.h

我正在尝试使用 Linux 内核 crc32 生成工具。我需要对一些数据进行 crc32 处理,以通过线路(独立于任何传输方法)发送到嵌入式系统。嵌入式系统有一个CRC32引擎,它以与内核相同或非常相似的方式计算数据的CRC32。但是,与内核相关的所有 crc 相关标头都不存在于 /usr/include/linux 中,任何手动将它们放置在那里的尝试都会导致编译时错误。缺少相关标头或缺少宏。

进行一些搜索并不会产生任何有用的结果。

答案1

内核的 CRC 函数可供内核(包括模块)使用,但不能用于其他地方。既然您指的是/usr/include/linux我假设您想从内核外部的程序中使用它们。

有两种解决方案可供您选择:

  • 如果您的程序的许可证与内核的许可证兼容,您可以复制lib/crc32.c并根据您的项目进行调整以适应;
  • 您可以使用 CRC32 的另一种实现(假设它与目标兼容)-兹库有一个,具有不同的许可证。

相关内容