klayout安装及使用教程
klayout
版本:klayout-0.26.9
我的系统环境:Deepin20(可以视为Debian)
修改过的代码地址:https://github.com/stuartofmine/klayout
注意,对源代码有所修改。主要在于解决编译错误和加快编译速度。
需要安装的工具如下:
C ++ :gcc,g ++和make
Qt:libqt4-dev-bin和libqt4-dev,qt4-qmake
Ruby:ruby和ruby-dev
Python:python3和python3-dev
zlib:libz-dev
加速编译:ccache
qmake
进入klayout目录下,打开终端,输入
./build.sh -j8 -ruby /usr/bin/ruby
默认调用qmake,使用-j8设置为八线程。使用-j32设置32线程运行。具体线程数根据内核数而定。注意,这里没有加-debug选项,因此不能用gdb调试。
如果报错提示找不到qmake,输入
sudo apt install qt4-qmake
等待编译完成。
如果提示找不到QString等库,请排查前述的依赖工具是否已安装
编译成功
进入 bin-release目录下
输入,注意,由于shell版本不同,可能需要改为~/.zshrc
vim ~/.bashrc
在目录最后输入
export LD_LIBRARY_PATH=“你的bin-release目录路径”
保存并退出
输入.注意,由于 shell 解释器不同,可能需要改为~/.zshrc
source ~/.bashrc
再输入
./klayout
成功:)
qtcreator
1.在项目-Build中关闭 shadow build。在额外参数一栏,输入:
HAVE_RUBY=1
RUBYVERSIONCODE=20505
RUBYINCLUDE=/usr/include/ruby-2.5.0
RUBYINCLUDE2=/usr/include/x86_64-linux-gnu/ruby-2.5.0
RUBYLIBFILE=/usr/lib/x86_64-linux-gnu/libruby-2.5.so.2.5.0
注意,所用ruby版本为ruby-2.5.0版本,其他版本对上述代码更改版本号即可。
2.在项目-Run-运行配置中修改运行配置为klayout_main。
在Command line arguments一栏输入
-e
-e是为了开启编辑模式,编辑DRC之类的必须开启。
3.当QTcreator使用的qmake为qt5时,应将layMainWindow.h中的
#include <QPrinter>
改为
#include <QtPrintSupport/QPrinter>
同时,需要在lay.pro中添加
QT += printsupport
保存。
4.假如内存不到8G,可能会被中止,使用
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo cp /etc/fstab /etc/fstab.bak
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
来创建交换分区。
5.关闭shadow build后,生成的动态库位于src目录下(若不关闭则生成一个build-klayout-Desktop-xxxxxxxx目录)
与bin-release目录同样的,将src目录加入/.bashrc。注意,由于版本不同,在ubuntu服务器上应为/.zshrc
vim ~/.bashrc
在其末尾添加
export LD_LIBRARY_PATH=“你的src目录路径”
保存并退出,注意,由于 shell 解释器不同,可能需要改为~/.zshrc
source ~/.bashrc
6.如果遇到Makefile错误,提示plugins目录下无法编译完成。形如下图

这是由于src目录下的Makefile进入plugins子项目流程时,没有清除上一次失败构建留下的Makefile,并且一共有三个Makefile需要清除。
暂时对src目录下的Makefile不作修改,打开终端,进入src/plugins目录,输入
rm Makefile */Makefile
即可。
如果不起作用,修改shadow build选项(开启就改为关闭,关闭就改为开启)。
7.点击编译。耗时约十分钟。
8.成功:)
gdb
需要在编译时加入 -debug 选项。操作示例:
gdb ./klayout
b rba.cc:134
Make breakpoint pending on future shared library load? (y or [n]) y
r
以上代码在rba.cc的134行加入了一个断点。
直接使用.drc编译,不开GUI
将你需要的.drc 放在src目录下(关闭shadow build时)
在Qt的项目->run->Command line arguments里内输入
-x set args -d 41 -b -r ./你的drc文件 -zz
这样不会开启GUI界面,但是断点调试之类与之前一致。
使用指南(青春版)
浏览量不小,顺便更新一下使用指南(青春版)。详询官网。
打开klayout后,先通过左上角"file"栏下的"New Layout"新建layout,再通过"Edit"栏下的"Layer"-->"New Layer"新建layer。
通过第二栏的各种Polygon和Box之类,在这个Layer上尽情发挥你熊熊燃烧的艺术才能。需要说明的是,一个Layout里可以有多个Layer。
在"Tools"栏下的"DRC"--->"New DRC Script"里,编辑DRC文件并运行。
再写下去就是各种细节了,请查询官网 klayout.de
klayout安装及使用教程的更多相关文章
- CentOS7下自定义目录安装mono+jexus教程
一.阅读前须知: 1.本文属于安装完Centos7之后的步骤 2.如果还不了解mono,请点击mono 3.本篇主要内容是使用自定义目录安装mono+jexus教程,使用默认目录请查看使用默认目录安装 ...
- 【转】真正从零开始,TensorFlow详细安装入门图文教程!(帮你完成那个最难的从0到1)
AI这个概念好像突然就火起来了,年初大比分战胜李世石的AlphaGo成功的吸引了大量的关注,但其实看看你的手机上的语音助手,相机上的人脸识别,今日头条上帮你自动筛选出来的新闻,还有各大音乐软件的歌曲& ...
- CentOS7下默认目录安装mono+jexus教程
一.阅读前须知: 1.本文属于安装完Centos7之后的步骤 2.如果还不了解mono,请点击mono 3.本篇主要内容是使用默认目录安装mono+jexus教程,使用自定义目录请查看使用自定义目录安 ...
- << CocoaPods安装和使用教程 >>github code4app以及cocoachina 苹果官方文档
developer.apple.com 英文搜索各个技术的官方介绍文档, 前提是英文过关 cocoachina ios最新新闻, 信息 code4app上有许多组件 http://www.code4a ...
- webpack安装配置使用教程详解
webpack安装配置使用教程详解 www.111cn.net 更新:2015-09-01 编辑:swteen 来源:转载 本文章来为各位详细的介绍一下关于webpack安装配置使用教程吧,这篇文章对 ...
- NSIS安装制作基础教程[初级篇], 献给对NSIS有兴趣的初学者
NSIS安装制作基础教程[初级篇], 献给对NSIS有兴趣的初学者 作者: raindy 来源:http://bbs.hanzify.org/index.php?showtopic=30029 时间: ...
- 安装WordPress详细教程指南
最近准备自己建一个个人博客,以便分享一些自己工作生活中的一些观点及经验,建博客当然选wordpress,毕竟wordpress是为博客而生的嘛.下边记录一下自己安装WordPress的详细过程指南,亦 ...
- 纯windows下制作变色龙引导安装U盘教程
原创教程:纯windows下制作变色龙引导安装U盘教程 支持Mavericks和Yosemite 支持白苹果 目标:windows下制作带 Chamelon变色龙引导的黑苹果安装U盘,支持PC机引导安 ...
- 最详细在Windows安装Xamarin.iOS教程
最详细在Windows安装Xamarin.iOS教程 来源:http://www.cnblogs.com/llyfe2006/articles/3098280.html 本文展示了如何设立Xamari ...
随机推荐
- 数据结构之Set | 让我们一块来学习数据结构
数组(列表).栈.队列和链表这些顺序数据结构对你来说应该不陌生了.现在我们要学习集合,这是一种不允许值重复的顺序数据结构.我们将要学到如何创建集合这种数据结构,如何添加和移除值,如何搜索值是否存在.你 ...
- VS2017报错 由#define后的分号引发的【“ 应输入“)】
其实并不是第十行分号出现了问题,而是由于在宏定义后面加了分号,修改成这样即可 一开始竟然没看出来--甚至以为是VS中出现"宏可以转换为constexpr"问题--下次要仔细--
- 教你用SQL实现统计排名
前言: 在某些应用场景中,我们经常会遇到一些排名的问题,比如按成绩或年龄排名.排名也有多种排名方式,如直接排名.分组排名,排名有间隔或排名无间隔等等,这篇文章将总结几种MySQL中常见的排名问题. 创 ...
- Spring cloud 基础框架集成
Spring cloud 基础框架集成 1. 注册中心 -eurekar 1. pom依赖 <?xml version="1.0" encoding="UTF-8& ...
- [BUAA2021软工助教]结对项目-第二阶段小结
一.作业链接 结对项目-第二阶段 二.优秀作业推荐 本次博客作业虽然是简单总结,但是以下作业中都不乏有思考.有亮点的精彩内容,推荐给同学们阅读学习. 磨练,结对编程!(中) zzx 和 zzy 同学实 ...
- mysql 格式化 取日期
- [云计算] OpenStack 发展史
传统数据中心面临的问题 无法管理,资源利用率不高 资源分配不合理 初始成本高 发展阶段 IDC 托管/租用 VPS(虚拟专用主机/OpenVZ/XEN) 虚拟主机 云主机 虚拟化 服务器虚拟化 KVM ...
- [Qt] 事件机制(四)
滚轮事件:滚动滚轮实现窗口大小缩放 widget.h中增加: protected: void wheelEvent(QWheelEvent *event) Q_DECL_OVERRIDE; void ...
- 攻防世界(三)Web_php_unserialize
攻防世界系列:Web_php_unserialize 0x01.代码审计 1.类Demo中struct().destruct()函数分别在代码执行开始和结束时调用.而wakeup函数会在代码执行过程中 ...
- stm32 向W25Q256FLASH中通过 FATFS文件系统写入数据 写多了之后出现错误,之前存储的全都找不到了
stm32 像W25Q256FLASH中通过 FATFS文件系统写入数据 写多了之后出现错误,之前存储的全都找不到了 http://firebbs.cn/thread-23490-1-1.html ...