Проблема: невозможно запустить двоичный файл Valgrind в ARM.
Я успешно скомпилировал Valgrind-3-13-0
на хосте Linux. И я переместил двоичные файлы в свою цель ARM. Я провел Valgrind по руке, там написано not found.
Этапы кросс-компиляции
В процессе сборки поковырял конфигурационный файл, поменял armv7
на arm
.
./configure --host=arm-none-linux-gnueabi --prefix=/home/my_dir
и я тоже пробовал этот вариант
./configure --target=arm-none-linux-gnueabi --host=arm-none-linux-gnueabi --prefix=/my_dir
затем сделать и сделать установить.
Я вижу, что Valgrind находится в моей корневой файловой системе /usr/bin
, удивляюсь, почему его поговорка не найдена.
Это окончательный результат кросс-компиляции Valgrind. Ниже просто дерево моего установочного каталога.
target_val/
├── bin
├── include
│ └── valgrind
│ └── vki
├── lib
│ ├── pkgconfig
│ └── valgrind
└── share
├── doc
│ └── valgrind
│ └── html
│ └── images
└── man
└── man1
На самом деле я скопировал только пять файлов из каталога /bin
в мой целевой каталог /usr/bin
.
callgrind_annotate
callgrind_control
valgrind
valgrind-di-server
valgrind-listener
Вопрос.
Нужно ли мне также копировать весь каталог lib?
Я пытаюсь запустить кросс-компилированный двоичный файл на хосте
usr:~/Desktop/ ./valgrind --version
/lib/ld-linux.so.3: No such file or directory
Я ожидал, что он будет жаловаться, как этот недопустимый образ ELF для этой архитектуры, потому что я создал его для руки и запустил в Linux, он должен жаловаться, но это не так.
Интересуетесь флагами конфигурации и ARCH?