Я пытаюсь скопировать исполняемый файл с моего компьютера с Linux (Ubuntu) в приложение для Android в качестве ресурса.Я успешно смог переместить исполняемый файл в файловую систему Android, но когда я пытаюсь выполнить, мне сообщают об ошибке 'sh: not executable: 64-bit ELF file.'
Я выполнил команду файла на исполняемом файле, и это был вывод:
'ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so, for GNU/Linux 2.6.32 not stripped.'
Когда я запускаю файл на исполняемом файле, который работает на устройстве Android:
'ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /system/bin/linker64, stripped.'
Чтобы добавить немного контекста, я пытаюсь скомпилировать эту программу.
Я скачал Android NDK и запускаю следующие команды для компиляции программы:
sudo ./configure --cc=/home/username/arm/bin/arm-linux-androideabi-gcc
sudo make
Компиляция работает, пока не дойдет до связывания, затем выдает следующие ошибки:
/home/username/arm/bin/../lib/gcc/arm-Linux-androideabi/4.9.x/../../../../arm-Linux-androideabi/bin/ld: error: fio.o: incompatible target
/home/username/arm/bin/../sysroot/usr/lib/crtbegin_dynamic.o:crtbrand.c:function _start: error: undefined reference to 'main'
engines/net.c:318: error: undefined reference to 'inet_network'
engines/net.c:322: error: undefined reference to 'inet_network'
engines/net.c:323: error: undefined reference to 'inet_network'
engines/net.c:318: error: undefined reference to 'inet_network'
cgroup.c:28: error: undefined reference to 'setmntent'
cgroup.c:34: error: undefined reference to 'getmntent_r'
cgroup.c:45: error: undefined reference to 'endmntent'
collect2: error: ld return 1 exit status
Makefile:433: recipe for target 'fio' failed
make *** [fio] Error 1
Нужно ли указывать определенный компоновщик?