一般用戶可以通過下載 nightly 來使用 7.99 版本。不過由于時差,有時候我晚上提交的 issue,過幾個小時開發者就能提交修復,這時候我就可以通過更新代碼并重新編譯代碼來運行最新的版本,不需要等待和下載 nightly build。另外有一些小的 bug 我也可以自己想辦法修改并提交 M(erge) R(equest)。
這里提供一些補充的信息。
安裝依賴
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,如下圖
可以在運行的時候開啟這個部分 (PNS) 的 trace log 輸出
KICAD_RUN_FROM_BUILD_DIR=1 WXTRACE=PNS ./pcbnew/pcbnew
KiCad 運行配置
自己編譯的版本并未帶有基礎的符號、封裝及其他設計庫,需要自己設定
在這里將基礎的庫路徑一一設置到前面下載的庫路徑
啟動原理圖或者符號編輯器,會提示復制全局的符號庫
啟動PCB或者封裝編輯器,會提示復制全局的封裝庫
使用非系統 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文章
1636瀏覽量
49172 -
PCB封裝
+關注
關注
20文章
76瀏覽量
30225 -
Debian
+關注
關注
0文章
75瀏覽量
1188
原文標題:KiCad 7.99 在 Debian 12 上的編譯/構建
文章出處:【微信號:嵌入式加油站,微信公眾號:嵌入式加油站】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論