0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

浅析KiCad 7.99在Debian 12上的编译/构建流程

嵌入式加油站 来源:iotpi 2023-12-22 10:16 次阅读

一般用户可以通过下载 nightly 来使用 7.99 版本。不过由于时差,有时候我晚上提交的 issue,过几个小时开发者就能提交修复,这时候我就可以通过更新代码并重新编译代码来运行最新的版本,不需要等待和下载 nightly build。另外有一些小的 bug 我也可以自己想办法修改并提交 M(erge) R(equest)。

6ad41cd8-a013-11ee-8b88-92fbcf53809c.png

这里提供一些补充的信息

安装依赖

Debian 12 的官方 apt 源提供了所有编译 Kicad 7.0会用到的库,也是 KiCad 开发者提供支持的编译环境。之前使用 Debian 11 编译 KiCad 7 遇到很多问题,需要自己编译更新一些依赖,折腾了很久,作为经验后面有一个部分会简要提及。

sudo apt install git gcc binutils gdb cmake ninja-build libopengl-dev libglx-dev  libgl-dev libglew-dev libglm-dev zlib1g-dev curl libcurl4-gnutls-dev libcairo2-dev libgit2-dev libboost1.74-all-dev libharfbuzz-dev ngspice-dev libngspice0-dev libocct-*-dev swig4.0 wxpython-wxgtk4.0 libwxgtk3.2-dev unixodbc-dev libgtk-3-dev libsecret-1-dev

ninja 和下面说的 mold 是推荐的可以提高编译和链接速度的选项。

Mold的自行编译

git clone https://github.com/rui314/mold.git
cd mold 
git v2.4.0 -b 2.4.0
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=c++ ..
cmake --build . -j `nproc`
sudocmake --install .

mold 被默认安装到 /usr/local/bin/mold, 为了使用 mold ,需要确定这 /usr/local/bin 被加入到环境变量的 PATH 中。

准备 KiCad 源代码

mkdir -p ~/Developer/Engineering/KiCad
cd ~/Developer/Engineering/KiCad
git clone https://gitlab.com/kicad/code/kicad.git kicad-master


#这些库特别是3D模型库比较大,并且不影响源代码编译,可以新开一个终端进行这些库的下载,
git clone https://gitlab.com/kicad/libraries/kicad-packages3D.git
git clone https://gitlab.com/kicad/libraries/kicad-symbols.git
git clone https://gitlab.com/kicad/libraries/kicad-footprints.git


cdkicad-master

编译

# 在 kicad-master/build/rel 目录下
cmake -G Ninja -DKICAD_VERSION_EXTRA=qdiotpi -DCMAKE_INSTALL_PREFIX=$(dirname $PWD)/release_install -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_CXX_FLAGS=-fuse-ld=mold ../..

也可以使用下面的标志位可以指定特定的 mold执行文件

-DCMAKE_CXX_FLAGS=-B/usr/local/bin/mold

对于使用 wayland 的环境,可以增加下面的标志

-DKICAD_USE_EGL=ON

可以在标准的版本号上附加一个版本标识,以区别官方编译的版本

-DKICAD_VERSION_EXTRA=qdiotpi

如果不准备将编译结果安装到某个目录,可以不添加下面的参数

-DCMAKE_INSTALL_PREFIX=$(dirname $PWD)/release_install

运行

常用的方式是直接在编译目录运行,而不需要执行 install 命令:

#依然在kicad-master/build/rel
KICAD_RUN_FROM_BUILD_DIR=1 ./kicad/kicad
#或者
KICAD_RUN_FROM_BUILD_DIR=1 ./eeschema/eeschema
# 或者
KICAD_RUN_FROM_BUILD_DIR=1 ./pcbnew/pcbnew

由于我还没有调研的某个原因,不能在 KiCad界面调用计算器等工具,这时候也需要命令行进行调用

#依然在kicad-master/build/rel
KICAD_RUN_FROM_BUILD_DIR=1 ./pcb_calculator/pcb_calculator

由于有时候新版的 KiCad 的崩溃情况会比较多,所以我会使用 gdb 启动 KiCad,这样崩溃的时候可以在 gdb 中查看崩溃的 back trace。

#依然在kicad-master/build/rel
KICAD_RUN_FROM_BUILD_DIR=1gdb ./kicad/kicad
# 进入 gdb 后,要使用 run 命令执行 kicad
#如果要设定断点,需要等kicad进程启动完成,再在 gdb 中(使用 ctrl-c 中断之后) 设置断点

Debug 编译

之前构建的版本是 RelWithDebInfo,如果你是因为要开发 KiCad 的功能,最好还是使用 Debug 目标,这样会取消掉编译器优化,方便源代码级调试:

-DCMAKE_BUILD_TYPE=Debug

调试信息输出( 只有在 Debug 模式下运行才有此 log 输出 )

如果在代码里看到 wxLogTrace,如下图

6afb1252-a013-11ee-8b88-92fbcf53809c.png

可以在运行的时候开启这个部分 (PNS) 的 trace log 输出

KICAD_RUN_FROM_BUILD_DIR=1  WXTRACE=PNS ./pcbnew/pcbnew

KiCad 运行配置

自己编译的版本并未带有基础的符号、封装及其他设计库,需要自己设定

6afeb100-a013-11ee-8b88-92fbcf53809c.png

在这里将基础的库路径一一设置到前面下载的库路径

6b20b46c-a013-11ee-8b88-92fbcf53809c.png

启动原理图或者符号编辑器,会提示复制全局的符号库

6b246db4-a013-11ee-8b88-92fbcf53809c.png

6b27c66c-a013-11ee-8b88-92fbcf53809c.png

启动PCB或者封装编辑器,会提示复制全局的封装库

6b2bceb0-a013-11ee-8b88-92fbcf53809c.png

使用非系统 wxPython 库的编译

由于 Debian 11 官方的 apt 源的库(主要是 wxPython )版本太低,不支持直接编译 KiCad 7.0。在未升级到 Debian 12 前,找到了一个方案来使用新版本 wxPython。不过这个方案应该也可以在其他某些情况下不使用系统库版本的时候使用。因为现在手头没有 Debian 11 的环境了,所以这里只记录一下概念和过程,有这种需要的朋友还要自己尝试。因为可以指定特定版本的 wxPython,所以对于一些特殊需要,比如使用特定版本的 wx之类的需求有借鉴意义。

wxPython 要求它调用的 wx 库必须是编译 wxPython 一致的库版本才可以。我使用了 https://docs.codelite.org/wxWidgets/repo320/来安装 KiCad 7.0 支持的 wx 运行时版本

然后下载了 wxPython 的源代码包。

我新建了一个 python venv ,激活启用这个 venv,并将 wxPython 编译安装进这个 venv。

python build.py  --use_syswx build_py
python build.py  --use_syswx install_py

编译KiCad

cmake-GNinja-DKICAD_VERSION_EXTRA=qdiotpi-DCMAKE_INSTALL_PREFIX=$(dirname$PWD)/debug_install-DPYTHON_SITE_PACKAGE_PATH=$(PATH_TO_VENV)/lib/python3/site-packages-DCMAKE_BUILD_TYPE=Debug-DCMAKE_CXX_FLAGS=-B/usr/local/libexec/mold../../

最重要的是设置如下的标志位到你自己的 venv 路径

-DPYTHON_SITE_PACKAGE_PATH=$(PATH_TO_VENV)/lib/python3/site-packages






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编译器
    +关注

    关注

    1

    文章

    1577

    浏览量

    48628
  • PCB封装
    +关注

    关注

    20

    文章

    74

    浏览量

    29966
  • Debian
    +关注

    关注

    0

    文章

    71

    浏览量

    1006

原文标题:KiCad 7.99 在 Debian 12 上的编译/构建

文章出处:【微信号:嵌入式加油站,微信公众号:嵌入式加油站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于全志V851se的TinyVision上手动构建 Linux 6.1 + Debian 12 镜像

    ,所以我们需要用到 syter_boot_bin_card.bin 编译 Linux-6.1 内核 由于 Debian 12 配套的内核是 Linux 6.1 LTS,所以这里我们选择构建
    发表于 03-18 10:49

    Raspbian “wheezy”(是Debian7.0ARMv6的编译版)

    Raspbian “wheezy”是Debian7.0ARMv6的编译版,加上针对树莓派深度定制的硬件驱动与软件程序。官方推荐系统。如果你第一次使用树莓派,请下载这个。Debian
    发表于 07-01 00:04

    KiCad 简体中文手册

    本帖最后由 饕餮人 于 2019-12-20 09:19 编辑 KiCad 简体中文手册:https://gitee.com/KiCAD-CN/KiCad-doc_build/r
    发表于 12-17 15:43

    Debian文件系统的构建步骤

    迅为IMX6ULL开发板-Debian文件系统的构建
    发表于 12-28 06:58

    怎么Debian构建嵌入式交叉编译环境?

    怎么Debian构建嵌入式交叉编译环境?
    发表于 04-28 06:56

    如何在Debian/Ubuntu下构建嵌入式交叉编译环境?

    如何在Debian/Ubuntu下构建嵌入式交叉编译环境?
    发表于 04-28 06:34

    构建open62541库的方法

    文章目录简介目标构建open62541库Ubuntu或Debian用CMake构建在Windows
    发表于 02-28 06:52

    KiCad EDA 版本说明

    开源且商业友好 KiCad EDA 是一款电子设计自动化(EDA)软件,开源且可以免费用于商业。 用户使用时无需单独授权,即可免费用于商业产品的设计和开发,基于 KiCad EDA 设计的电子产品
    发表于 05-20 16:27

    KiCad系统配置要求

    的更新后,KiCad将不再不支持的系统进行专门测试。不受支持的操作系统在这段时间后可继续使用KiCad,但必须在受支持的操作系统重现错误,KiCad才会处理这些问题。 Window
    发表于 05-27 13:03

    KiCad中使用AD的封装库(Pcblib)

    “ 经常有小伙伴群里问,有没有办法可以批量把Altium Designer的封装库转成KiCad的形式。目前阶段暂时只能单个的导出,或者将封装全部放到AD的PCB,然后通过导入PCB再导出的方式
    发表于 06-19 13:06

    OK3568编译Debian系统

    3568默认都是用buildroot的系统,但有时候为了上层业务应用开发和部署方便,使用debian或ubuntu系统更方便,所以这里用Debian系统。 编译debian系统前,需要
    发表于 10-24 01:09

    剖析OpenHarmony3.0编译构建流程

    2.0 Canary编译构建流程 》。 OHOS3.0 的打包镜像脚本由原来 2.0 的 buildadapteruild_image.sh,全部修改替换
    的头像 发表于 12-07 10:54 2855次阅读

    KICAD插件使用说明书

    。 通过确保开发⼈员仅编译与正在开发的插件直接相关的代码,从⽽减少每个构建和测试周期所需的时间,在插件开发期间删除构建 KiCad 的要求极⼤地提⾼了⼯作效率。
    发表于 02-25 11:58 8次下载

    kicad设计的fpga12层PCB原文件

    kicad设计的fpga12层PCB原文件分享
    发表于 09-30 14:43 0次下载

    树莓派使用KiCad设计方案

    树莓派官方使用KiCad、资助KiCad,而KiCad开发团队也支持树莓派,具体行动是KiCad也推出Raspberry Pi OS适用的版本,只要是基于代号Bulleye的
    发表于 01-03 12:47 1197次阅读