download 编译
CC=${CROSS_COMPILE}gcc CPP=${CROSS_COMPILE}cpp CXX=${CROSS_COMPILE}g++ ./configure --host=xxx --prefix=xxxx; \
make
make install
将host和prefix修改为你平台需要的,
运行的问题
1
valgrind: failed to start tool ‘memcheck’ for platform ‘arm-linux’: No such file or directory
需要将
memcheck-arm-linux
放到前面编译时候指定的prefix目录,如果是一个很长的PC目录,也要保持这个目录
2
valgrind: Fatal error at startup: a function redirection
valgrind: which is mandatory for this platform-tool combination
valgrind: cannot be set up. Details of the redirection are:
valgrind:
valgrind: A must-be-redirected function
valgrind: whose name matches the pattern: index
valgrind: in an object with soname matching: ld-linux-armhf.so.3
valgrind: was not found whilst processing
valgrind: symbols from the object with soname: ld-linux-armhf.so.3
valgrind:
valgrind: Possible fixes: (1, short term): install glibc's debuginfo
valgrind: package on this machine. (2, longer term): ask the packagers
valgrind: for your Linux distribution to please in future ship a non-
valgrind: stripped ld.so (or whatever the dynamic linker .so is called)
valgrind: that exports the above-named function using the standard
valgrind: calling conventions for this platform. The package you need
valgrind: to install for fix (1) is called
valgrind:
valgrind: On Debian, Ubuntu: libc6-dbg
valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo
valgrind:
valgrind: Note that if you are debugging a 32 bit process on a
valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo
valgrind: package (e.g. libc6-dbg:i386).
valgrind:
valgrind: Cannot continue -- exiting now. Sorry.
从你的编译工具链的目录里面找到non-strip的ld-xxx.so,我的是ld-2.26.so,替换到/lib目录。
3
其他找不到库和文件的问题,从编译目录里面找到对应的文件和库,放到memcheck-arm-linux对应的目录即可。
运行参数
valgrind --leak-check=full ./progname