Linux

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

  • September 29, 2020

我正在嘗試使用 Linux 核心 crc32 生成工具。我需要對一些數據進行 crc32 處理,以通過線路(獨立於任何傳輸方法)發送到嵌入式系統。嵌入式系統有一個CRC32引擎,它以與核心相同或非常相似的方式計算數據的CRC32。但是,所有與核心相關的 crc 相關標頭檔都不存在於 /usr/include/linux 中,並且任何手動將它們放置在那裡的嘗試都會導致編譯時錯誤。缺少依賴標頭或缺少宏。

做一些搜尋並沒有產生任何有用的結果。

核心的 CRC 函式對核心(包括模組)可用,但在其他任何地方都沒有。由於您指的是/usr/include/linux我假設您想從核心外部的程序中使用它們。

有兩種解決方案可供您使用:

  • 如果您的程序許可證與核心許可證兼容,您可以復製lib/crc32.c到您的項目並對其進行調整以適應;
  • 您可以使用 CRC32 的另一種實現(假設它與目標兼容)- zlib有一個,具有不同的許可證。

引用自:https://unix.stackexchange.com/questions/612019