严重错误:找不到“ linux / can.h”文件

时间:2019-06-07 09:45:18

标签: android linux sockets can-bus

[4/5] Building CXX object CMakeFiles/native-lib.dir/src/main/cpp/TransportCAN.cpp.o
FAILED: CMakeFiles/native-lib.dir/src/main/cpp/TransportCAN.cpp.o 
/home/oncall/Android/Sdk/android-ndk-r12b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -target mipsel-none-linux-android -gcc-toolchain /home/oncall/Android/Sdk/android-ndk-r12b/toolchains/mipsel-linux-android-4.9/prebuilt/linux-x86_64 --sysroot=/home/oncall/Android/Sdk/android-ndk-r12b/platforms/android-18/arch-mips  -Dnative_lib_EXPORTS -isystem /home/oncall/Android/Sdk/android-ndk-r12b/sources/cxx-stl/gnu-libstdc++/4.9/include -isystem /home/oncall/Android/Sdk/android-ndk-r12b/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips/include -isystem /home/oncall/Android/Sdk/android-ndk-r12b/sources/cxx-stl/gnu-libstdc++/4.9/include/backward -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mips32 -Wa,--noexecstack -Wformat -Werror=format-security -fno-exceptions -fno-rtti -frtti -fexceptions -O0 -fno-limit-debug-info  -fPIC -MD -MT CMakeFiles/native-lib.dir/src/main/cpp/TransportCAN.cpp.o -MF CMakeFiles/native-lib.dir/src/main/cpp/TransportCAN.cpp.o.d -o CMakeFiles/native-lib.dir/src/main/cpp/TransportCAN.cpp.o -c ../../../../src/main/cpp/TransportCAN.cpp
In file included from ../../../../src/main/cpp/TransportCAN.cpp:17:
../../../../src/main/cpp/TransportCAN.h:21:10: fatal error: 'linux/can.h' file not found
#include <linux/can.h>
         ^
1 error generated.
ninja: build stopped: subcommand failed.

1 个答案:

答案 0 :(得分:0)

Android对CAN的支持是一个复杂的主题。几年前,请参阅我的blog post。 7年后,这似乎仍然是一个问题。

看看can-utils项目。它已经提供了头文件和必要的构建配方,以构建适用于Android的CAN相关软件。最重要的是,他们运送了linux/can.h之类的用户土地标头。只需在项目中包含文件夹include,代码就可以正常编译(如果要分发软件,请查看许可条款)。

您还必须提供以下定义(有关详细信息,请参见Android.mk

PRIVATE_LOCAL_CFLAGS := -O2 -g -W -Wall     \
            -DSO_RXQ_OVFL=40    \
            -DPF_CAN=29     \
            -DAF_CAN=PF_CAN