Статически связанный двоичный файл завершается с ошибкой «апплет не найден» - PullRequest
0 голосов
/ 01 апреля 2020

Я использую busybox v1.27.2 во встроенной системе linux. Чтобы протестировать среду сборки своего пользовательского пространства, я кросс-скомпилировал простое приложение hello-world под названием «hello». В системе нет доступных библиотечных файлов, поэтому я статически связан с uClib c. Я подтвердил, что двоичный файл был построен правильно с использованием файла:

hello: ELF 32-bit LSB  executable, ARM, EABI5 version 1 (SYSV), statically linked, not stripped

, когда я пытаюсь выполнить из целевого rootfs, я получаю следующее:

/ # ./hello
hello: applet not found

Я пытался выполнить из / usr / bin и другие каталоги, результат тот же. Я понимаю, что это сообщение может появиться, когда символические ссылки неправильно указывают на двоичный файл busybox. Однако я запутался, так как это приложение не должно зависеть от busybox. Любая помощь будет оценена.

Вот код для справки:

// C library headers
#include <stdio.h>
#include <string.h>

int main(int argc, char *argv[])
{
    printf("hello world");
    return 0;
}

1 Ответ

1 голос
/ 04 апреля 2020

Исправлена ​​эта повторная компиляция покупки uClib c и двоичного файла "привет" с arm-build root -u clinux -uclibcgnueabi-g cc набор инструментов из сборки root

...