<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
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

    文章

    1585

    瀏覽量

    48741
  • PCB封裝
    +關注

    關注

    20

    文章

    74

    瀏覽量

    29999
  • Debian
    +關注

    關注

    0

    文章

    71

    瀏覽量

    1032

原文標題: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 ?2903次閱讀

    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 ?1302次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>