当前位置: 首页 > news >正文

arm交叉编译lmbench

一、下载lmbench

 

www.bitmover.com/lmbench 官网下载,http://www.bitmover.com/lmbench/lmbench3.tar.gz

我没有下载下来,找的别人的百度云下载

链接: https://pan.baidu.com/s/1tGo1clCqY-jQPN8G1eWSsg 提取码: f6jd

二、修改makefile

修改三个文件

2.1 修改scripts/os

在最后一行echo $OS前,增加

OS=arm-linux (增加行)

echo $OS

2.2 修改scripts/compiler

在最后一行echo $CC前,增加

CC=arm-linux-gnueabihf-gcc(增加行)

echo $CC

2.3 修改scripts/build

将LDLIBS=lm修改为LDLIBS="-static -lm"

三、编译

直接make,编译完成后在bin目录下生成stream可执行文件。

四、运行出错处理

stream在我们的环境中运行,直接会报Segmentation fault,无其他任何打印。

通过gdb发现无任何堆栈信息,只是报错:Starting program: /mnt/test/zhixin_stream/stream
During startup program terminated with signal SIGSEGV, Segmentation fault.

在网络上查也没有查到啥有用信息,最后通过查看stream.c的源码发现,STREAM_ARRAY_SIZE参数过大,导致申请的数组大小已经大于内存大小。

#ifndef STREAM_ARRAY_SIZE

#   define STREAM_ARRAY_SIZE 10000000

#endif

static STREAM_TYPE a[STREAM_ARRAY_SIZE + OFFSET],

系统起来以后的剩余内存只有128M,之前STREAM_ARRAY_SIZE大小为接近1G,,由此导致在程序加载的时候超过运行内存大小而出现段错误。修改STREAM_ARRAY_SIZE大小为原来的十分之一,问题解决。

http://www.lryc.cn/news/108598.html

相关文章:

  • ExtJs 7.7.0 下载方法与去除trial水印
  • Android11开发规划
  • 活动隔断在现在酒店运用的方式
  • Jenkins工具系列 —— 插件 钉钉发送消息
  • LeetCode 26 题:删除有序数组的重复项
  • 优雅地切换node版本(windows)
  • 反诈:吴明军、黄亮领导的WIN生活资金盘,大家警惕防范此类诈骗
  • shell、bash的关系及bash的特性(一)
  • 【问题随记】
  • Stable Diffusion AI绘画学习指南【常用模型,采样器介绍】
  • pycharm——漏斗图
  • RISC-V基础之浮点指令(包含实例)
  • 前端生成图片验证码怎么做?
  • 【Java】springboot框架 粮油质量溯源MES生产加工管理系统源码
  • macOS install redis遇到的bug(tar包,homebrew安装,守护进程redis.conf配置)
  • 面试题:创建JS对象的几种方式?构造函数是什么?new操作符具体干了什么?为什么字符串可以使用length?
  • LabVIEW深度相机与三维定位实战(下)
  • 【基础类】—CSS盒模型的全面认识
  • ATFX汇评:非农就业报告来袭,汇市或迎剧烈波动
  • SpringBoot的常用注解的服用方式
  • [课程][原创]CMakeLists编写实战linux版
  • 静态路由下一跳地址怎么确定(静态路由配置及讲解)
  • SPSS‖参数与非参数检验对比课程中的 配对样本T检验
  • AI赋能转型升级 助力打造“数智辽宁”——首次大模型研讨沙龙在沈成功举行
  • JVM、Redis、反射
  • 【Spring练习项目】博客系统
  • 神策新一代分析引擎架构演进
  • Systemui的介绍以及与普通应用的差异
  • 群狼调研—产业园物业满意度的调研对象
  • 想参加华为杯竞赛、高教社杯和数学建模国赛的小伙伴看过来