一般用戶可以通過下載 nightly 來使用 7.99 版本。不過由于時差,有時候我晚上提交的 issue,過幾個小時開發(fā)者就能提交修復(fù),這時候我就可以通過更新代碼并重新編譯代碼來運行最新的版本,不需要等待和下載 nightly build。另外有一些小的 bug 我也可以自己想辦法修改并提交 M(erge) R(equest)。
這里提供一些補充的信息。
安裝依賴
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,如下圖
可以在運行的時候開啟這個部分 (PNS) 的 trace log 輸出
KICAD_RUN_FROM_BUILD_DIR=1 WXTRACE=PNS ./pcbnew/pcbnew
KiCad 運行配置
自己編譯的版本并未帶有基礎(chǔ)的符號、封裝及其他設(shè)計庫,需要自己設(shè)定
在這里將基礎(chǔ)的庫路徑一一設(shè)置到前面下載的庫路徑
啟動原理圖或者符號編輯器,會提示復(fù)制全局的符號庫
啟動PCB或者封裝編輯器,會提示復(fù)制全局的封裝庫
使用非系統(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
審核編輯:劉清
-
編譯器
+關(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)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論