为什么 j1939.h 不包含在 Ubuntu 18.04 Linux 内核中?

Why isn't j1939.h include in the Ubuntu 18.04 Linux Kernel?

我正在尝试在嵌入式 Linux 系统上使用 CAN J1939 标准 运行 Ubuntu 18.04,内核 5.4.0-52-generic。

This elinux page indicates that j1939.h "got in the mainline kernel since v5.4". And kernel.org's documentation for j1939表示在主内核中。

最后,我安装了 can-utils。

当我用 #include <linux/can/j1939.h> 编译一个 cpp 文件时,我得到一个 no such file or directory 错误。

我已经浏览了 linux/can 目录以确认 j1939.h 不存在。为什么我的 v5.4 内核没有 j1939.h?我怎样才能在我的程序中最好地使用 j1939.h

您需要这些 headers 的开发包。您可以在 Ubuntu 包站点上搜索您需要的包。 IE。在这种情况下 packages containing j1939.h。您可能正在寻找 linux-libc-devlinux-headers-5.4.0-26.