问题:无法在 ARM 中运行 Valgrind 二进制文件。
Valgrind-3-13-0
我在 Linux 主机中成功交叉编译。我将二进制文件移至我的 ARM 目标。我用它说的手臂运行 Valgrindnot 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
dir 复制到了我的 target /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 图像,因为我为 arm 构建它并在 Linux 上运行它应该这样抱怨,但事实并非如此。
想知道配置标志和 ARCH 吗?