问题:无法在ARM中运行Valgrind二进制文件。
我在Linux主机中成功交叉编译Valgrind-3-13-0
。我将二进制文件移动到我的ARM目标。我按照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?
答案 0 :(得分:0)
我在StackOverflow中发布问题后,我在五分钟内找到了答案。
可以从armv7获得Valgrind支持。
实际上我的硬件不支持Valgrind ,我对Amr7和Armv7两者都不一样感到困惑。它与ARM9E相同,与AMRv9不同。我的坏。
我附上了arm architecture page以供参考。