最近一直呆在家中,没有什么实验的硬件环境,只能写写C语言,装装软件混日子。这次在家中用虚拟机重新装了一遍Synopsys的VCS,中间碰到了一些遇见过的问题,于是把安装过程录了屏,顺便做一下文字记录,算是水了一篇文章吧。
本文主要记录了在Ubuntu环境下安装VCS工具出现的问题和解决方案,涉及到一点虚拟机的使用和Linux的命令行指令。
本来已经在西瓜视频上上传了安装过程的视频,但是还在审核中,可文章底部的链接看视频。
安装过程主要按照参考资料1中的内容进行,本文主要记录安装过程中出现的问题和解决方案。
实验环境:
- Ubuntu 19.04 Desktop amd64
- VmwareStation 15.1
- VCS,Verdi,SCL 2016.04 64bit
安装64bit版本,所以Ubuntu中的文件夹放入这些文件:
- scl_v11.9_common.spf
- scl_v11.9_amd64.spf
- verdi_vVerdi3_L-2016.06-1_common.spf
- verdi_vVerdi3_L-2016.06-1_linux64.spf
- vcs-mx_vL-2016.06_linux64.spf
- vcs-mx_vL-2016.06_common.spf
- SynopsysInstaller_v3.3.run
scl_keygen留在Windows下作后续使用
安装过程中的问题
- 缺少csh
直接在命令行调用installer,会报这个错误。由于系统缺少csh,使用
sudo apt-get install csh
命令解决这个问题
2. 安装软件过程中的注意事项
安装程序不推荐使用root身份安装。但以普通用户身份安装时,到这个界面需要选择已经存在的文件夹,且保证文件夹是新建文件夹,内部没有其他内容,然后点右边的Done,底部的Next按键就可以点击了
否则就会出现下图的报错
VCS使用遇到的问题
3. makefile格式问题
makefile的书写主要参考了参考资料2,使用makefile代替每次调用软件时的复杂命令行参数,但书写makefile注意,缩进用Tab键不要用空格代替,否则会报下图的错
4. GCC/G++ 版本太高不兼容问题
由于Ubuntu的GCC/G++版本太高,所以使用VCS会报错,报错内容如下:
VCS提示G++ 报错,原因是因为GCC/G++版本太高不兼容,要解决这个问题,必须装一个合适的低版本GCC/G++,最终我们选择4.8版本,直接使用
sudo apt-get install gcc-4.8sudo apt-get install g++-4.8
会报错,无法找到这个软件包;这说明官方的软件源里已经没有这么低版本的GCC/G++。于是我们将软件源的地址换到国内的镜像源,国内的镜像源软件历史版本较多,正好可以解决这个问题。
我们选用的是清华大学的镜像源,将/etc/apt/sources.list文件备份,然后复制下面的内容覆盖该文件,内容来源参考资料3。
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ disco main restricted universe multiverse# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ disco main restricted universe multiversedeb Tsinghua Open Source Mirror disco-updates main restricted universe multiverse# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ disco-updates main restricted universe multiversedeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ disco-backports main restricted universe multiverse# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ disco-backports main restricted universe multiversedeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ disco-security main restricted universe multiverse# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ disco-security main restricted universe multiverse# 预发布软件源,不建议启用# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ disco-proposed main restricted universe multiverse# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ disco-proposed main restricted universe multiverse
文件替换完成后执行
sudo apt-get update
然后就可以正确执行
sudo apt-get install gcc-4.8sudo apt-get install g++-4.8
最后,为了方便VCS在仿真时直接调用GCC/G++ 4.8,直接删除/usr/bin/gcc, /usr/bin/g++, 创建软链接,这样调用GCC/G++时直接就调用了GCC/G++-4.8
命令行操作如下:
sudo rm -rf /usr/bin/gccsudo rm -rf /usr/bin/g++sudo ln -s /usr/bin/gcc-4.8 /usr/bin/gccsudo ln -s /usr/bin/g++-4.8 /usr/bin/g++
5. LDFLAGS的问题
继续调用VCS,发现再一次报错,报错内容如下:
这里的问题是LDFLAGS的问题,LDFLAGS是用来制定动态Library调用的参数集;在调用VCS时增加一行命令行参数,参数为
-LDFLAGS -Wl,--no-as-needed
Verdi使用遇到的问题
6. libjpeg.so.62缺失问题
首次使用Verdi,就报错,错误内容如下:
系统缺少libjpeg.so.62,使用
sudo apt-get install libjpeg62-dev
安装后问题解决
7. libpng12.so.0缺失问题
Verdi接着报错,报错内容如下:
报错内容说缺少libpng12.so.0,这个库其实系统内有,只是没在正确的位置。
命令行执行
sudo find / -name libpng12.so.0
找到了正确位置后,使用
sudo ln -s xxxx/ libpng12.so.0 /usr/bin/ libpng12.so.0
至此,VCS安装使用过程中所有的问题已被解决。