RedHat7安装Systemc 编译仿真

来源:互联网 发布:如家精选 知乎 编辑:程序博客网 时间:2024/05/18 09:08

本来在win7下 使用vc6++已经实现了对systemc的编译,但是不能仿真,于是就想在Linux中搭建systemc环境,然后就给自己挖了一个大坑,,,,,,真是一把辛酸泪啊!
小白一个,上来就安装systemc,因为没有gcc失败,那就安gcc吧,缺什么补什么嘛,使用rpm安装gcc,由于某些文件的依赖问题,百度了各种办法试了一下午还是没有成功(有句mmp一定要讲!)。我就纳闷了,网上其他人为什么就没有遇到过这样的问题,看他们的文章很轻松啊。rpm这一条路走不通,咱就换一条,看到可以使用yum安装,自动解决依赖问题,握草!瞬间感觉见到天使,来yum走起,,,,尼玛!红帽系统没有注册不能使用yum,我就一个刚接触Linux的小白,没有必要搞个注册版啊(实际上是没钱!)。还好,又看到可以使用CentOS的yum来替换RedHat。哎,来咱们接着走起,安centos的yum,先看看自己的redhat有没有连上网,ping 8.8.8.8 …Network is unreachable 这世界还有爱吗。。。。继续百度,试了许多办法都没有成功,,,,夜深了,还是休息吧。。。(一个人千里迢迢来上海,此刻更觉无助)
新的一天开始了,开电脑,输密码,熟悉的“successful landing welcome home sir”贾维斯电脑开机音效,打开虚拟机,启动redhat系统(没有音效,,),进入x图像界面,桌面右上角 蓝牙标志右边是个什么标志,点开看看,wired开关,你妹,为什么设计这么一个开关还默认关闭!?打开这个开关,红帽可以上网了,可以继续安装yum了,找了一篇看起来靠谱的文章,不过也试了好几次才成功,不知道为什么(第一篇博客就是安装yum)…..yum安装好以后,接着继续安装gcc 直接yum -y install gcc一句话搞定,然后gcc -v看看版本号,证明安好了。现在可以安装systemc了吧,天不如人意,有出问题了,g++没有装,没有搞清楚gcc和g++,以为是一个东西(还有很多路要走啊),OK 百度一下,没有用多久g++成功按上。这下安装systemc总算没有出问题。
虽然想把遇到的所有问题都记下来,可是在解决问题时哪有那个闲心来记,解决以后某些问题又忘了,这样的过程从大一到毕业不知道经历了多少次,个人认为,重要的是解决方法还有这个过程对人的一种训练,而不是记录每个问题。大学期间一直没有写博客,现在毕业了,一天就写了两篇,因为没有大学那么多时间来慢慢消化吸收了,只能靠“ 烂键盘”,还有一个原因是,我希望自己的过程可以对别人有所帮助,节省他们的时间。
知识是自由的,应该让更多人获益。

//////////////////////////////////这是分割线/////////////////////////////////////////////
(下面的内容 大部分是参考网上其他人的,只是在有些地方加了自己遇到问题的解决办法)

虚拟机:VMware Workstation 12 pro
系统:Red Hat Enterprise Linux 7 64

SystemC文件:systemc-2.2.0.tgz
我下了几个版本都保存在百度云
下载地址:http://pan.baidu.com/s/1sl0ldVJ

将systemc-2.2.0.tgz 放在Home下新建的文件夹systemc中,并打开终端。
(一)环境搭建
安装步骤:
(1)》tar xzvf systemc-2.2.0.tgz
(2)》cd systemc-2.2.0
(3)》mkdir objdir
(4)》cd objdir
(5)》export CXX=g++(设置环境变量)
(6)》mkdir -p /home/systemc/systemc-2.2(因为–prefix指定的路径必须存在,所以先建立一个)
(7)》../configure –prefix=/home/systemc/systemc-2.2
(8)》gedit ../src/sysc/utils/sc_utils_ids.cpp
在弹出的gedit编辑器中添加以下两个头文件,保存后退出gedit编辑器(不然make会出现错误)。
#include < cstdlib >
#include < cstring >
(9)如果出现以下错误,那么就去systemc-2.2.0/src/sysc/datatypes/bit这个目录下使用gedit打开sc_bit_proxies.h并在出现错误的行删除”mutable”这个词(只是这一个词,哎,我第一次是把整行注释了。。。。。)
../../../../systemc-2.2.0/src/sysc/datatypes/bit/sc_bit_proxies.h:716:16: error: reference ‘m_obj’ cannot be declared ‘mutable’ [-fpermissive]
../../../../systemc-2.2.0/src/sysc/datatypes/bit/sc_bit_proxies.h:1193:18: error: reference ‘m_left’ cannot be declared ‘mutable’ [-fpermissive]
../../../../systemc-2.2.0/src/sysc/datatypes/bit/sc_bit_proxies.h:1194:18: error: reference ‘m_right’ cannot be declared ‘mutable’ [-fpermissive]
../../../../systemc-2.2.0/src/sysc/datatypes/bit/sc_bit_proxies.h:1196:18: error: reference ‘m_refs’ cannot be declared ‘mutable’ [-fpermissive]


(10)》make
(11)》make install
现在安装目录下应该是这个样子,注意“lib-linux64”这个文件夹,我看的一篇文章上相同地方是“lib-linux
这里写图片描述
(二)编译仿真
至此systemc环境应该搭好了。下面就拿个例子来跑跑。以“A SystemC Primer,Second Edition”书中第二章的例题为例。所有例题代码都在这本书是自带的光盘里,我把资料上传到了百度云,这是链接:http://pan.baidu.com/s/1jIzJsyi

(1)gedit打开EX文件夹里面的Makefile.defs
这里写图片描述

(2)注释掉 SYSTEMC = /home/jbhasker/SYSTEMC/systemc-2.0.1
加入 SYSTEMC = /home/systemc/systemc-2.2这里为systemc的安装路径。
这里写图片描述

(3)进入CH2用gedit打开full_adder_main.make
这里写图片描述
(4)下图是我在加的一些注释,注意TARGET_ARCH = linux64
这里写图片描述

(5)》make -f full_adder_main.make (编译结束产生可执行文件systemc.run.x)

(6)》./systemc.run.x(执行仿真)
这里写图片描述

原创粉丝点击