注:按照以下步骤可以在海思板子上正常编译valgrind源码并生成valgrind可执行文件,但可能还不能在海思板子上正常使用。

1. 从http://valgrind.org/downloads/?src=www.discoversdk.com 下载Valgrind 3.15.0即valgrind-3.15.0.tar.bz2;

2. 在valgrind-3.15.0目录下,创建一个build.sh脚本文件,内容如下:

./configure \--prefix="$PWD/install" \CC=/opt/hisi-linux/x86-arm/aarch64-himix100-linux/bin/aarch64-himix100-linux-gcc \CXX=/opt/hisi-linux/x86-arm/aarch64-himix100-linux/bin/aarch64-himix100-linux-g++ \CPP=/opt/hisi-linux/x86-arm/aarch64-himix100-linux/bin/aarch64-himix100-linux-cpp \AR=/opt/hisi-linux/x86-arm/aarch64-himix100-linux/bin/aarch64-himix100-linux-ar \--target=aarch64-himix100-linux \--host=aarch64-himix100-linux \--program-prefix=hisi-

3. 依次执行如下命令后,会在当前install目录下生成bin, include, lib, libexec, share五个目录,每个目录的内容如下图所示

./build.sh
make -j8
make install

4. 将install/bin目录下的可执行文件hisi-valgrind拷贝到海思板子上,将install/lib目录下的valgrind目录也拷贝到海思板子上,此目录下包含了执行hisi-valgrind时需要的库,然后依次执行如下命令,结果如下图所示:

export VALGRIND_LIB=valgrind/
./hisi-valgrind --version

5. 测试代码main.cpp如下:

#include <stdio.h>
#include <iostream>namespace {void func1() {int* p1 = new int[10];
}void func2() {int* p2 = new int[5];
}} // namespaceint main()
{fprintf(stdout, "test start\n");func1();func2();fprintf(stdout, "test finish\n");
}

6. 执行如下命令,生成可执行文件main:

/opt/hisi-linux/x86-arm/aarch64-himix100-linux/bin/aarch64-himix100-linux-g++ -g -o main main.cpp

7. 将可执行文件main拷贝到海思板子上,执行如下命令 ,结果如下图所示:

./hisi-valgrind --tool=memcheck --leak-check=full ./main

从上图中可以看出编译好的hisi-valgrind还是不能在海思板子上直接使用,可以参考http://www.ebaina.com/blog/show.php?itemid=307 和https://www.ebaina.com/articles/140000002852中的方法试着处理下,本人未验证。

海思3559A上编译Valgrind源码操作步骤相关推荐

  1. 海思3559A上编译LIVE555源码操作步骤

    1. 从http://www.live555.com/liveMedia/public/ 下载live.2019.06.28.tar.gz,并解压缩: 2. 生成静态库,拷贝一份config.arml ...

  2. 海思3559A上编译FFmpeg源码操作步骤

    1. 从https://github.com/FFmpeg/FFmpeg/releases 下载你需要的版本: 2. 因为ffmpeg编译选项较多,为了更方便的了解有哪些选项,可将编译选项写入到一个文 ...

  3. 海思3559A上编译GDB源码操作步骤及简单使用

    1. 从http://ftp.gnu.org/gnu/gdb/ 下载最新稳定版8.3,即gdb-8.3.tar.gz,解压缩: 2. 在gdb-8.3目录下,创建一个build.sh脚本文件,内容如下 ...

  4. 海思3559A上编译libjpeg-turbo源码操作步骤

    1. 从https://github.com/libjpeg-turbo/libjpeg-turbo/releases/tag/2.0.2 下载libjpeg-turbo 2.0.2版本: 2. 脚本 ...

  5. 海思3559A上编译libyuv源码操作步骤

    1. 下载libyuv源代码,执行: git clone https://chromium.googlesource.com/libyuv/libyuv 2. 通过CMakeLists.txt编译生成 ...

  6. 海思3531D上编译FFmpeg源码操作步骤

    从https://github.com/FFmpeg/FFmpeg/releases 下载你需要的版本: 因为ffmpeg编译选项较多,为了更方便的了解有哪些选项,可将编译选项写入到一个文本文件con ...

  7. 在Windows和Linux上编译gRPC源码操作步骤(C++)

    gRPC最新发布版本为v1.23.0,下面以此版本为例说明在Windows和Linux下编译过程. Windows7/10 vs2103编译gRPC源码操作步骤: 1. 需要本机已安装Git.CMak ...

  8. Windows10上编译MXNet源码操作步骤(Python)

    1. 按照https://blog.csdn.net/fengbingchun/article/details/84997490  中操作步骤首先在Windows上通过VS2017编译MXNet源代码 ...

  9. 在Ubuntu14.04 64位上编译CMake源码操作步骤

    在Ubuntu上通过apt-get install安装CMake并不是最新版的,这里记录下在Ubuntu上通过源码安装CMake的操作步骤: 1.        卸载旧版CMake,执行以下命令: a ...

最新文章

  1. tar 相关知识软硬连接
  2. 离子量子计算机 寻址,量子计算机的硬件进展
  3. 如何填充自画形状_AI中如何用形状填充
  4. 鲲鹏迁移第一批吃螃蟹的人,践行技术国际化
  5. java8 朗姆表达式,java同步数据库时间问题[问题点数:20分,结帖人vtison]
  6. cmd命令查询电脑序列号_硬盘序列号查询软件_如何查看电脑硬盘序列号
  7. PPAPI插件开发指南
  8. STM32F4之SDIO接口
  9. Specular mode: Specular parameter 高光模式:高光参数 Standard Shader系列7
  10. 剑麻的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  11. 遇见王沥川的人生感悟_遇见王沥川的人生感悟
  12. latex:ieee摘要两端对齐
  13. es6 Promise是什么?
  14. 从餐桌到太空,孙宇晨的“星辰大海”
  15. 机器学习-查准率、查全率、调和平均值
  16. 怎样快速实现整篇文档中英互译
  17. 【优化】--Squid优化汇总
  18. c语言 /= 和 *= 是什么意思?
  19. 谈一谈对 TailwindCSS 的看法
  20. 百度深度学习平台AI Studio入门

热门文章

  1. 深蓝学院第二章:基于全连接神经网络(FCNN)的手写数字识别
  2. Linux那些事儿 之 戏说USB(7)不一样的core
  3. Linux gcc 制作动/静态链接库
  4. 一、网页端文件流的传输
  5. c语言编号程序,c语言中如何在一个程序语句前加编号c语言中如何在一个程序语句前加...
  6. Tensorflow C++ API调用Keras模型实现RGB图像语义分割
  7. 图像的上采样和下采样
  8. Vue 监听路由变化的三种方式
  9. kotlin + springboot启用elasticsearch搜索
  10. 两个关于水花的测试。