为MIPS架构编译Valgrind时,如何设置--prefix适配目标根文件系统?
解决Valgrind交叉编译时路径匹配问题
这问题我之前交叉编译嵌入式工具链时也碰到过,其实只要调整两个配置参数就能完美解决:
你需要在配置阶段将--prefix设为目标系统的根目录/,同时通过--with-install-dir指定主机上的实际安装路径为你挂载的镜像目录/mnt/mount_dir。具体配置命令如下:
./configure --target=mips32-linux --prefix=/ --with-install-dir=/mnt/mount_dir [其他你的编译配置参数]
配置参数的作用解释:
--prefix=/:告诉Valgrind,它在目标系统中的安装根路径是/,这样当你在目标系统里启动Valgrind时,它会自动去/lib/valgrind/memcheck-mips32-linux查找所需的工具组件,完全符合你的需求。--with-install-dir=/mnt/mount_dir:这是给主机编译环境看的,它指定编译完成后,所有文件会被安装到主机上的/mnt/mount_dir目录(也就是你挂载的目标系统镜像路径),确保文件被正确写入到镜像对应的位置。
如果之前已经执行过configure或make操作,建议先清理旧的编译残留文件,避免影响新配置:
make clean && rm -rf config.log config.status
之后重新运行上述configure命令,再正常执行make和make install即可。
内容的提问来源于stack exchange,提问作者Vasiliy Kuramshin
相关产品推荐
相关产品推荐

