ubuntu 安装 flex ubuntu如何安装软件
大家好,今天小编来为大家解答以下的问题,关于ubuntu 安装 flex,ubuntu如何安装软件这个很多人还不知道,现在让我们一起来看看吧!
ubuntu怎么安装disksim
一、安装须知:
1.我是在在32位OS下安装使用DiskSim
2. DiskSim使用lex和yacc进行词法及语法分析,故linux如没安装flex、bison的话,先要安装。
$ sudo apt-get install bison flex(前提是先联网)
3.下载源码安装包
disksim 4.0:
SSDextension:
二、安装步骤
Step 1. Download and unzip.
Sources can be downloaded from the links above. I downloaded DiskSim 4.0 with dixtrac.
$ tar-zxvf disksim-4.0-with-dixtrac.tar.gz
$ cd disksim-4.0
$ unzip../ssd-add-on.zip
Step 2. Apply SSD add on patch.
$ patch-p1< ssdmodel/ssd-patch
Step 3. Modify Makefile to support math library
a.修改memsmodel/Makefile:
进入disksim4.0/memsmodel目录,然后执行命令sudo vim Makefile
待修改的部分:
mems_seektest: mems_seektest.o libmems_internals.a
$(CC)-o$@ mems_seektest.o$(LDFLAGS)$(CFLAGS)-lmems_internals
我们将$(LDFLAGS)放置最后;
修改后的结果如下:
mems_seektest: mems_seektest.o libmems_internals.a
$(CC)-o$@ mems_seektest.o$(CFLAGS)-lmems_internals$(LDFLAGS)
b.修改dixtrac/Makefile:
进入disksim4.0/dixtrac目录,然后执行命令sudo vim Makefile
待修改的部分:
LDFLAGS=-L.-lm-l$(LIBNAME)-ldxtools\
$(LIBDISKSIM_LDFLAGS)\
$(MEMSMODEL_LDFLAGS)\
$(DISKMODEL_LDFLAGS)\
$(LIBPARAM_LDFLAGS)\
$(LIBDDBG_LDFLAGS)\
$(ST_LDFLAGS)
我们将-lm放置最后;
修改后的结果如下:
LDFLAGS=-L.-l$(LIBNAME)-ldxtools\
$(LIBDISKSIM_LDFLAGS)\
$(MEMSMODEL_LDFLAGS)\
$(DISKMODEL_LDFLAGS)\
$(SSDMODEL_LDFLAGS)\
$(LIBPARAM_LDFLAGS)\
$(LIBDDBG_LDFLAGS)\
$(ST_LDFLAGS)-lm
c.修改src/Makefile:
进入disksim4.0/src目录,然后执行命令sudo vim Makefile
待修改的部分:
LDFLAGS=-lm-L.-ldisksim$(DISKMODEL_LDFLAGS)$(MEMSMODEL_LDFLAGS)\
$(LIBPARAM_LDFLAGS)$(LIBDDBG_LDFLAGS)
我们将-lm放置最后;
修改后的结果如下:
LDFLAGS=-L.-ldisksim$(DISKMODEL_LDFLAGS)$(MEMSMODEL_LDFLAGS)\
$(SSDMODEL_LDFLAGS)\
$(LIBPARAM_LDFLAGS)$(LIBDDBG_LDFLAGS)-lm
Step 4. Append SSD model library path to dixtrac.
4.1 add these lines to dixtrac/.paths(将下面的六行代码复制到该文件的最底端)
#PATH TO SSDMODEL
export SSDMODEL_PREFIX=../ssdmodel
export SSDMODEL_INCL=$(SSDMODEL_PREFIX)/include
export SSDMODEL_CFLAGS=-I$(SSDMODEL_INCL)
export SSDMODEL_LDPATH=$(SSDMODEL_PREFIX)/lib
export SSDMODEL_LDFLAGS=-L$(SSDMODEL_LDPATH)-lssdmodel
4.2修改dixtrac/Makefile文件:
$(LIBDISKSIM_LDFLAGS)
$(MEMSMODEL_LDFLAGS)
$(DISKMODEL_LDFLAGS)
$(SSDMODEL_LDFLAGS)#(添加这一行内容)
$(LIBPARAM_LDFLAGS)
$(LIBDDBG_LDFLAGS)
$(ST_LDFLAGS)
CFLAGS=-Wall-g-MD-I.$(DEFINES)-I$(STHREADS)$(DMINCLUDES)
$(LIBDISKSIM_CFLAGS)
$(DISKMODEL_CFLAGS)$(LIBPARAM_CFLAGS)$(LIBDDBG_CFLAGS)
$(SSDMODEL_CFLAGS)#(添加这一行内容,注意使用tab键来对齐)
Step 5. Compile!(进入disksim4.0目录执行该命令)
$ make
注意:此时编译时提示出错,错误提示如下:
make[1]:正在进入目录 `/home/liyongwei/liyongwei/DiskSim安装/disksim-4.0/dixtrac'
Makefile:68:*** commands commence before first target。停止。
make[1]:正在离开目录 `/home/liyongwei/liyongwei/DiskSim安装/disksim-4.0/dixtrac'
make:*** [all]错误 2
有篇文章说这种错误时由于修改时没有采用tab键对齐造成的,但是我检查之后发现我的修改没有错误,于是忽略这个错误提示,继续进行。(执行完该操作之后,在disksim/src/中会有一个名为disksim的可执行文件,代表编译成功)
Step 6. Check if it works well.
$ cd valid;./runvalid
$ chmod a+x../ssdmodel/valid/runvalid
$ cd../ssdmodel/valid;./runvalid
需等待段时间获得结果,结果如下:
—Running tests with the synthetic workload generator—
Sequential read(250K I/Os): average SSD response time should be around 0.132 ms
ssd Response time average: 0.132511
Sequential write(250K I/Os): average SSD response time should be around 0.310 ms
ssd Response time average: 0.310895
Sequential write(5M I/Os): average SSD response time should be around 0.334 ms
ssd Response time average: 0.334365
Random read(250K I/Os): average SSD response time should be around 0.136 ms
ssd Response time average: 0.136118
Random write(250K I/Os): average SSD response time should be around 0.329 ms
ssd Response time average: 0.329458
Random write(5M I/Os): average SSD response time should be around 0.593 ms
ssd Response time average: 0.593438
—Running tests with the real traces—
IOzone: average SSD response time should be around 6.394276 ms
ssd Response time average: 6.394276
Postmark: average SSD response time should be around 4.140330 ms
ssd Response time average: 4.140330
说明安装成功!
7.也可以进disksim4.0/valid/执行$./runvalid
部分结果如下:
These results represent actual drive validation experiments
QUANTUM_QM39100TD-SW(rms should be about 0.378)
rms= 0.377952
SEAGATE_ST32171W(rms should be about 0.349)
rms= 0.347570
SEAGATE_ST34501N(rms should be about 0.318)
rms= 0.317972
8.再做另外一个测试,
进入disksim-4.0/ssdmodel/valid/目录下,新建一个test.outv文件用于存放测试输出的结果。
运行示例(在disksim-4.0文件夹下执行下面的命令):./src/disksim./ssdmodel/valid/ssd-postmark.parv./ssdmodel/valid/test.outv ascii./ssdmodel/valid/ssd-postmark-aligned2.trace 0
等待结束后打开test.outv就会发现里面多了好多的数据,那就恭喜你了。
ubuntu22.04 安装flex+bison简单测试
在Ubuntu 22.04的终端中,执行以下命令以安装Flex和Bison,并进行简单测试。
首先,使用包管理器更新本地软件包列表,命令为:
sudo apt-get update
然后,安装Flex和Bison:
sudo apt-get install flex bison
安装成功后,通过运行以下命令验证安装:
yacc--version
flex--version
bison--version
上述命令将分别显示Flex和Bison的版本信息。这表明安装过程顺利完成,可以使用它们进行后续的编译器开发任务。请确保在执行安装命令前具备相应的权限,否则可能需要在命令前添加`sudo`。
词法分析工具flex的安装及使用(Ubuntu)
在ubutu上安装 yacc的命令:
yylex()是由flex创建的扫描程序的入口点,调用yylex()启动或者重新开始扫描。Lex编写的yylex()从名为yyin的FILE*文件指针中读取字符。如果未设置yyin,则默认为标准输入。它输出到yyout,如果未设置默认为stdout。还可以在yywrap()函数中修改yyin,该函数在文件末尾调用。它允许打开另一个文件,并继续解析。如果是这种情况,将其返回0。如果要结束此文件的解析,将其返回1。一般来说,每次调用yylex()都会返回一个表示标记类型的整数值。
flex的结构如下:
一个*.l的文件里的结构大概如上,用%%分隔开来。分为三个区:
使用诸如Flex的词法生成器的好处是使得程序员可以集中考虑词法的特点;而不是具体如何实现词法分析。
参考: