0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

淺析KiCad 7.99在Debian 12上的編譯/構(gòu)建流程

嵌入式加油站 ? 來源:iotpi ? 2023-12-22 10:16 ? 次閱讀

一般用戶可以通過下載 nightly 來使用 7.99 版本。不過由于時差,有時候我晚上提交的 issue,過幾個小時開發(fā)者就能提交修復(fù),這時候我就可以通過更新代碼并重新編譯代碼來運行最新的版本,不需要等待和下載 nightly build。另外有一些小的 bug 我也可以自己想辦法修改并提交 M(erge) R(equest)。

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

這里提供一些補充的信息。

安裝依賴

Debian 12 的官方 apt 源提供了所有編譯 Kicad 7.0會用到的庫,也是 KiCad 開發(fā)者提供支持的編譯環(huán)境。之前使用 Debian 11 編譯 KiCad 7 遇到很多問題,需要自己編譯更新一些依賴,折騰了很久,作為經(jīng)驗后面有一個部分會簡要提及。

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 被加入到環(huán)境變量的 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執(zhí)行文件

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

對于使用 wayland 的環(huán)境,可以增加下面的標志

-DKICAD_USE_EGL=ON

可以在標準的版本號上附加一個版本標識,以區(qū)別官方編譯的版本

-DKICAD_VERSION_EXTRA=qdiotpi

如果不準備將編譯結(jié)果安裝到某個目錄,可以不添加下面的參數(shù)

-DCMAKE_INSTALL_PREFIX=$(dirname $PWD)/release_install

運行

常用的方式是直接在編譯目錄運行,而不需要執(zhí)行 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

由于我還沒有調(diào)研的某個原因,不能在 KiCad界面調(diào)用計算器等工具,這時候也需要命令行進行調(diào)用

#依然在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 命令執(zhí)行 kicad
#如果要設(shè)定斷點,需要等kicad進程啟動完成,再在 gdb 中(使用 ctrl-c 中斷之后) 設(shè)置斷點

Debug 編譯

之前構(gòu)建的版本是 RelWithDebInfo,如果你是因為要開發(fā) KiCad 的功能,最好還是使用 Debug 目標,這樣會取消掉編譯器優(yōu)化,方便源代碼級調(diào)試:

-DCMAKE_BUILD_TYPE=Debug

調(diào)試信息輸出( 只有在 Debug 模式下運行才有此 log 輸出 )

如果在代碼里看到 wxLogTrace,如下圖

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

可以在運行的時候開啟這個部分 (PNS) 的 trace log 輸出

KICAD_RUN_FROM_BUILD_DIR=1  WXTRACE=PNS ./pcbnew/pcbnew

KiCad 運行配置

自己編譯的版本并未帶有基礎(chǔ)的符號、封裝及其他設(shè)計庫,需要自己設(shè)定

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

在這里將基礎(chǔ)的庫路徑一一設(shè)置到前面下載的庫路徑

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

啟動原理圖或者符號編輯器,會提示復(fù)制全局的符號庫

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

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

啟動PCB或者封裝編輯器,會提示復(fù)制全局的封裝庫

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

使用非系統(tǒng) wxPython 庫的編譯

由于 Debian 11 官方的 apt 源的庫(主要是 wxPython )版本太低,不支持直接編譯 KiCad 7.0。在未升級到 Debian 12 前,找到了一個方案來使用新版本 wxPython。不過這個方案應(yīng)該也可以在其他某些情況下不使用系統(tǒng)庫版本的時候使用。因為現(xiàn)在手頭沒有 Debian 11 的環(huán)境了,所以這里只記錄一下概念和過程,有這種需要的朋友還要自己嘗試。因為可以指定特定版本的 wxPython,所以對于一些特殊需要,比如使用特定版本的 wx之類的需求有借鑒意義。

wxPython 要求它調(diào)用的 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../../

最重要的是設(shè)置如下的標志位到你自己的 venv 路徑

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






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1634

    瀏覽量

    49134
  • PCB封裝
    +關(guān)注

    關(guān)注

    20

    文章

    76

    瀏覽量

    30202
  • Debian
    +關(guān)注

    關(guān)注

    0

    文章

    75

    瀏覽量

    1174

原文標題:KiCad 7.99 在 Debian 12 上的編譯/構(gòu)建

文章出處:【微信號:嵌入式加油站,微信公眾號:嵌入式加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    基于全志V851se的TinyVision上手動構(gòu)建 Linux 6.1 + Debian 12 鏡像

    ,所以我們需要用到 syter_boot_bin_card.bin 編譯 Linux-6.1 內(nèi)核 由于 Debian 12 配套的內(nèi)核是 Linux 6.1 LTS,所以這里我們選擇構(gòu)建
    發(fā)表于 03-18 10:49

    KiCad 簡體中文手冊

    本帖最后由 饕餮人 于 2019-12-20 09:19 編輯 KiCad 簡體中文手冊:https://gitee.com/KiCAD-CN/KiCad-doc_build/r
    發(fā)表于 12-17 15:43

    Debian文件系統(tǒng)的構(gòu)建步驟

    迅為IMX6ULL開發(fā)板-Debian文件系統(tǒng)的構(gòu)建
    發(fā)表于 12-28 06:58

    怎么Debian構(gòu)建嵌入式交叉編譯環(huán)境?

    怎么Debian構(gòu)建嵌入式交叉編譯環(huán)境?
    發(fā)表于 04-28 06:56

    如何在Debian/Ubuntu下構(gòu)建嵌入式交叉編譯環(huán)境?

    如何在Debian/Ubuntu下構(gòu)建嵌入式交叉編譯環(huán)境?
    發(fā)表于 04-28 06:34

    KiCad EDA 版本說明

    開源且商業(yè)友好 KiCad EDA 是一款電子設(shè)計自動化(EDA)軟件,開源且可以免費用于商業(yè)。 用戶使用時無需單獨授權(quán),即可免費用于商業(yè)產(chǎn)品的設(shè)計和開發(fā),基于 KiCad EDA 設(shè)計的電子產(chǎn)品
    發(fā)表于 05-20 16:27

    KiCad系統(tǒng)配置要求

    的更新后,KiCad將不再不支持的系統(tǒng)進行專門測試。不受支持的操作系統(tǒng)在這段時間后可繼續(xù)使用KiCad,但必須在受支持的操作系統(tǒng)重現(xiàn)錯誤,KiCad才會處理這些問題。 Window
    發(fā)表于 05-27 13:03

    OK3568編譯Debian系統(tǒng)

    3568默認都是用buildroot的系統(tǒng),但有時候為了上層業(yè)務(wù)應(yīng)用開發(fā)和部署方便,使用debian或ubuntu系統(tǒng)更方便,所以這里用Debian系統(tǒng)。 編譯debian系統(tǒng)前,需要
    發(fā)表于 10-24 01:09

    KiCad的工作流程解析

    KiCad與其它PCB設(shè)計軟件的功能基本一致,只是其工作流程與有些設(shè)計工具存在的主要不同在于原理圖的元器件符號庫和PCB的封裝庫是分開的,創(chuàng)建原理圖的時候可以不用考慮使用的元器件的封裝,直到開始做PCB布局布線的時候才會為元器
    發(fā)表于 08-16 15:10 ?3477次閱讀
    <b class='flag-5'>KiCad</b>的工作<b class='flag-5'>流程</b>解析

    Debian 項目宣布推出 Debian 10.7 正式版

    ,如果你已經(jīng)安裝了最新的 Debian,那么你就已經(jīng)使用 Debian 10.7。 除了不需要重新安裝 Debian 之外,你也不需要處理掉所擁有的任何
    的頭像 發(fā)表于 12-08 09:37 ?2113次閱讀

    剖析OpenHarmony3.0編譯構(gòu)建流程

    2.0 Canary編譯構(gòu)建流程 》。 OHOS3.0 的打包鏡像腳本由原來 2.0 的 buildadapteruild_image.sh,全部修改替換
    的頭像 發(fā)表于 12-07 10:54 ?3251次閱讀

    KICAD插件使用說明書

    KiCad 插件系統(tǒng)是?個使?共享庫擴展 KiCad 功能的框架。 使?插件的?個主要優(yōu)點是開發(fā)插件時沒有必要重建KiCad 套件; 事實
    發(fā)表于 02-25 11:58 ?8次下載

    kicad設(shè)計的fpga12層PCB原文件

    kicad設(shè)計的fpga12層PCB原文件分享
    發(fā)表于 09-30 14:43 ?0次下載

    樹莓派使用KiCad設(shè)計方案

    樹莓派官方使用KiCad、資助KiCad,而KiCad開發(fā)團隊也支持樹莓派,具體行動是KiCad也推出Raspberry Pi OS適用的版本,只要是基于代號Bulleye的
    發(fā)表于 01-03 12:47 ?1845次閱讀

    樹莓派宣布基于 Debian12“書蟲”的樹莓派操作系統(tǒng)新版本

    樹莓派宣布了基于 Debian 12“書蟲 ”的樹莓派操作系統(tǒng)的新版本,從 Debian 11“靶心”升級而來,自 2021 年 11 月起作為樹莓派操作系統(tǒng)的基礎(chǔ)。 正如 公告 中所解釋的,
    的頭像 發(fā)表于 10-12 14:26 ?2402次閱讀
    樹莓派宣布基于 <b class='flag-5'>Debian12</b>“書蟲”的樹莓派操作系統(tǒng)新版本