我正在尝试使用 Linux 内核 crc32 生成工具。我需要对一些数据进行 crc32 处理,以通过线路(独立于任何传输方法)发送到嵌入式系统。嵌入式系统有一个CRC32引擎,它以与内核相同或非常相似的方式计算数据的CRC32。但是,与内核相关的所有 crc 相关标头都不存在于 /usr/include/linux 中,任何手动将它们放置在那里的尝试都会导致编译时错误。缺少相关标头或缺少宏。
进行一些搜索并不会产生任何有用的结果。
答案1
内核的 CRC 函数可供内核(包括模块)使用,但不能用于其他地方。既然您指的是/usr/include/linux
我假设您想从内核外部的程序中使用它们。
有两种解决方案可供您选择:
- 如果您的程序的许可证与内核的许可证兼容,您可以复制
lib/crc32.c
并根据您的项目进行调整以适应; - 您可以使用 CRC32 的另一种实现(假设它与目标兼容)-兹库有一个,具有不同的许可证。