фатальная ошибка: файл 'linux / can.h' не найден - PullRequest
0 голосов
/ 07 июня 2019
[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 голосов
/ 11 июня 2019

Поддержка Android для CAN - сложная тема.Смотрите мое сообщение в блоге об этом несколько лет назад.Спустя 7 лет это все еще кажется проблемой.

Взгляните на проект can-utils .Он уже предоставляет как заголовочные файлы, так и необходимые рецепты сборки для создания программного обеспечения, связанного с CAN для Android.Самое главное, что они отправляют заголовки пользователей, например, linux/can.h.Просто включите папку include в ваш проект, и ваш код должен хорошо скомпилироваться (ознакомьтесь с условиями лицензирования, если вы собираетесь распространять свое программное обеспечение).

Вы также должны будете предоставить следующие определения (см.Android.mk для деталей):

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