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

问题描述

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

This elinux page表示j1939.h“自v5.4起进入主线内核”。 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

解决方法

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