从源码编译安装 KLayout

有的,KLayout 支持从源码编译。以下是详细的源码编译步骤:


一、安装依赖

bash 复制代码
sudo apt update
sudo apt install -y build-essential git

# Qt 依赖(KLayout 需要 Qt5 或 Qt6)
sudo apt install -y qtbase5-dev qttools5-dev libqt5svg5-dev \
    libqt5xmlpatterns5-dev qtmultimedia5-dev

# Ruby 支持(OpenROAD 流程需要)
sudo apt install -y ruby ruby-dev

# Python 支持
sudo apt install -y python3 python3-dev libpython3-dev

# 其他依赖
sudo apt install -y libz-dev zlib1g-dev libgit2-dev chrpath txt2man

二、克隆源码

bash 复制代码
cd ~/tmp01
git clone https://github.com/KLayout/klayout.git
cd klayout

# 查看最新版本
git tag | tail -5
# 例如切换到 0.30.10
git checkout 0.30.10

三、编译

KLayout 提供了 build.sh 脚本,使用方式如下:

bash 复制代码
cd ~/tmp01/klayout

# 查看帮助
./build.sh -h

# 标准编译(Release 模式,使用所有 CPU 核心)
./build.sh -j$(nproc)

# 不带 Qt 绑定(编译更快,但脚本无法创建 GUI)
./build.sh -without-qtbinding -j$(nproc)

# 指定 Python 版本
./build.sh -python /usr/bin/python3 -j$(nproc)

编译完成后,二进制文件在 bin-release/ 目录下。


四、安装

bash 复制代码
cd ~/tmp01/klayout

# 方式 1:直接复制到系统目录
sudo cp -r bin-release/* /usr/local/bin/
sudo cp -r lib-release/* /usr/local/lib/ 2>/dev/null || true

# 方式 2:创建软链接
sudo ln -sf $(pwd)/bin-release/klayout /usr/local/bin/klayout

# 验证
klayout -v
# 应显示类似:KLayout 0.30.10

五、OpenROAD 流程中使用

bash 复制代码
cd ~/tmp01/OpenROAD-flow-scripts/flow

# 确保 klayout 在 PATH 中
which klayout

# 重新运行(从 GDS 合并步骤继续)
make YOSYS_EXE=/usr/local/bin/yosys OPENROAD_EXE=$(which openroad)

六、编译选项参考

选项 说明
-j<N> 并行编译,使用 N 个核心
-without-qtbinding 禁用 Qt 绑定(减少编译时间)
-python <path> 指定 Python 解释器路径
-ruby <path> 指定 Ruby 解释器路径
-prefix <path> 安装前缀
-debug 编译 Debug 版本

七、常见问题

Q:编译时间多久?

A:在 8 核机器上约 10-20 分钟。不带 Qt 绑定会快很多。

Q:可以不带 GUI 编译吗?

A:可以,加上 -without-qtbinding,但 OpenROAD 的 GDS 合并脚本通常不需要 GUI,所以没问题。

Q:与 apt 安装的 KLayout 冲突吗?

A:建议先 sudo apt remove klayout 删除旧版,避免冲突。

相关推荐
吃饱了得干活9 分钟前
Agent 的决策与规划:ReAct、Plan-and-Execute、Reflexion 与 Tree of Thoughts
人工智能·llm·agent
阿明622 分钟前
小白入门机器学习基础【AI】
人工智能·机器学习
java资料站26 分钟前
十一、评估测试
开发语言·人工智能·python
东方佑31 分钟前
从《事件发生与智能》的框架看中国古代命理学
人工智能·深度学习·语言模型·自然语言处理·架构
天远API37 分钟前
零信任架构实战:基于天远运营商三要素简版V即时版查询构建自动化司乘安全绑定网关
人工智能·安全·架构·自动化
Henry-SAP1 小时前
SAP PP核心引擎计划策略业务解析
人工智能·云原生·sap·erp
DP DPharness1 小时前
拆开 dsh-knowledge 的检索链路,看 RRF 融合与锚点续读
人工智能·dpharness
I'm a winner1 小时前
《AI 赋能嵌入式开发:从 0 到全栈工程师》模块1|第4课时
人工智能
johnsong2 小时前
当决策成为免费商品:思维成本崩溃背后的治理真空
大数据·人工智能
ZhangJun952 小时前
在 32GB 内存电脑上本地搭建 Qwen3.6-35B-A3B 大模型踩坑实录
运维·人工智能·阿里云·ai·软件构建