当前位置: 首页 > news >正文

KiCad 编译

KiCad 编译

因为最新项目需要,所以看了一下KiCad的编译,这里介绍的是64位电脑的编译,32位小伙伴请绕道官网看教程呦。

您可以在KiCad内查看基本的编译教程。

我这里也是参考的官网编译教程进行的编译,接下来让我们一起看看吧。

使用msys2编译KiCad

官网说在5.99和最终的6.0版本已经切换到msvc了,虽然还支持msys2但是可能支持不好。我再使用msys2编译最新的7.0的时候编译会报一个boost错误,我猜测应该是msys2下载的boost版本太低,而最新版本使用的一些函数已经找不到实现了,所以我下载了一个6.0版本的KiCad来使用msys2编译

首先需要下载一个msys2。 这里是MSYS2的官网

在这里插入图片描述

  1. 点击红框位置下载相关软件。

  2. 进入到安装包内使用msys2_shell.cmd运行(这里请跟步骤,一定要到安装包内点击cmd的运行文件运行)

  3. 在运行的程序中输入pacman -Syu,等执行完成后关闭界面。

  4. 打开mingw64.exe

  5. 执行如下代码:

# 首先需要安装对应的包,下面的代码需要一句一句执行
pacman -S base-devel
pacman -S git
pacman -S mingw-w64-x86_64-cmake 
pacman -S mingw-w64-x86_64-doxygen 
pacman -S mingw-w64-x86_64-gcc 
pacman -S mingw-w64-x86_64-python2 
pacman -S mingw-w64-x86_64-pkg-config 
pacman -S mingw-w64-x86_64-swig 
pacman -S mingw-w64-x86_64-boost 
pacman -S mingw-w64-x86_64-cairo 
pacman -S mingw-w64-x86_64-glew 
pacman -S mingw-w64-x86_64-curl 
pacman -S mingw-w64-x86_64-wxPython 
pacman -S mingw-w64-x86_64-wxmsw3.1  # 该句如果执行不成功可以跳过该句的执行
pacman -S mingw-w64-x86_64-toolchain 
pacman -S mingw-w64-x86_64-glm 
pacman -S mingw-w64-x86_64-opencascade 
pacman -S mingw-w64-x86_64-ngspice 
pacman -S mingw-w64-x86_64-zlib
pacman -S mingw-w64-x86_64-openssl# 下面进入您拷贝的项目路径
cd kicad-source
mkdir -p build/release
mkdir build/debug # 该句是为了debug的版本保留的,如果您不需要可以不执行该句
cd build/release# 下面执行cmake构建项目
cmake -DCMAKE_BUILD_TYPE=Release \-G "MSYS Makefiles" \-DCMAKE_PREFIX_PATH=/mingw64 \-DCMAKE_INSTALL_PREFIX=/mingw64 \-DDEFAULT_INSTALL_PATH=/mingw64 \-DOCC_INCLUDE_DIR=/mingw64/include/opencascade \-DKICAD_SCRIPTING=OFF \-DKICAD_SPICE=OFF \../../
# cmake 完成之后make项目
make # 您也可以选择多线程make -j N
make install
  1. 在上面操作完成执行cmake的时候,可能会报一个错(Not Found wxWidgets 3.2.2.1)这个时候我们执行
pacman -R mingw-w64-x86_64-wxPython   
pacman -R mingw-w64-x86_64-wxwidgets3.2-msw 
pacman -S mingw-w64-x86_64-wxWidgets
pacman -S mingw-w64-x86_64-wxPython
pacman -S mingw-w64-x86_64-wxmsw3.2

这里就是卸载调冲突的包,重新安装对应的包,安装完成之后记得重启你的msys2控制台

  1. 之后您将进入较长时间的编译等待

在这里插入图片描述

搞了半天,编译出来的exe是不能运行的,我也不知道为什么,所以我尝试了使用vs去编译项目。

使用Visual Studio 编译KiCad

  1. 首先你需要下载如下软件:

VCPKG

vcpkg: 你可以点击该链接或者是使用如下代码获取对应的exe

// 获取vcpkg
git clone https://github.com/microsoft/vcpkg.git
// 执行该句获取vcpkg.exe
.\vcpkg\bootstrap-vcpkg.bat

SWIG

swig:你可以点击该链接下载swig,我下载的是swigwin-4.1.1

  1. 接下来你需要使用vcpkg安装以下依赖
./vcpkg.exe install glew glm boost wxwidgets curl cairo
  1. 然后你需要尝试将你的CMakeSetting.json修改为如下:
{// See https://go.microsoft.com//fwlink//?linkid=834763 for more information about this file."configurations": [{"name": "x86-Debug","generator": "Ninja","configurationType": "Debug","inheritEnvironments": [ "msvc_x86" ],"buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}","installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}","cmakeCommandArgs": "","buildCommandArgs": "-v","ctestCommandArgs": "","variables": [{"name": "KICAD_SPICE","value": "OFF"},{"name": "KICAD_USE_OCE","value": "OFF"},{"name": "KICAD_SCRIPTING","value": "OFF"},{"name": "KICAD_SCRIPTING_WXPYTHON","value": "OFF"},{"name": "KICAD_SCRIPTING_MODULES","value": "OFF"}],"cmakeToolchain": "E:/vcpkg/scripts/buildsystems/vcpkg.cmake"},{"name": "x86-Release","generator": "Ninja","configurationType": "RelWithDebInfo","inheritEnvironments": [ "msvc_x86" ],"buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}","installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}","cmakeCommandArgs": "","buildCommandArgs": "-v","ctestCommandArgs": "","variables": [{"name": "KICAD_SPICE","value": "OFF"},{"name": "KICAD_USE_OCE","value": "OFF"},{"name": "KICAD_SCRIPTING","value": "OFF"},{"name": "KICAD_SCRIPTING_WXPYTHON","value": "OFF"},{"name": "KICAD_SCRIPTING_MODULES","value": "OFF"}],"cmakeToolchain": "E:/vcpkg/scripts/buildsystems/vcpkg.cmake"},{"name": "x64-Debug","generator": "Ninja","configurationType": "Debug","inheritEnvironments": [ "msvc_x64_x64" ],"buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}","installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}","cmakeCommandArgs": "","buildCommandArgs": "-v","ctestCommandArgs": "","variables": [{"name": "KICAD_SPICE","value": "OFF"},{"name": "KICAD_USE_OCE","value": "OFF"},{"name": "KICAD_SCRIPTING","value": "OFF"},{"name": "KICAD_SCRIPTING_WXPYTHON","value": "OFF"},{"name": "KICAD_SCRIPTING_MODULES","value": "OFF"}],"cmakeToolchain": "E:/vcpkg/scripts/buildsystems/vcpkg.cmake"},{"name": "x64-Release","generator": "Ninja","configurationType": "RelWithDebInfo","inheritEnvironments": [ "msvc_x64_x64" ],"buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}","installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}","cmakeCommandArgs": "","buildCommandArgs": "-v","ctestCommandArgs": "","variables": [{"name": "KICAD_SPICE","value": "OFF"},{"name": "KICAD_USE_OCE","value": "OFF"},{"name": "KICAD_SCRIPTING","value": "OFF"},{"name": "KICAD_SCRIPTING_WXPYTHON","value": "OFF"},{"name": "KICAD_SCRIPTING_MODULES","value": "OFF"}],"cmakeToolchain": "E:/vcpkg/scripts/buildsystems/vcpkg.cmake"}]
}

或者你也可以按照教程上的一样修改.sample那个json。

修改自带的CMakeSetting.json.sample更简单,所以我决定修改CMakeSetting.json修改为.sample内的内筒

但是你要记得修改

{ "VcPkgDir": "D:/vcpkg/" }

这一条,修改为你的vcpkg所在的位置。

vcpkg将包安装完成之后打开kicad,我这里下载的时候kicad最新的是7.0版本,所以我下载的是7.0.0的kicad。

这样尝试了一下,不行,cmake报错,无法生成可编译的项目文件,但是别急,我又使用cmake可视化文件编译了一下。可能是我的vs自带的camke版本太低或者其他原因,总之我是不能编译的,你可以试一下你的,如果可以就不用看下面的教程了。

fuck,为什么我的不行啊,是不是哪里出问题了呀。换种思路:

使用cmake可视化工具+vs2019编译kicad

  • 正常的选择kicad和编译文件夹之后点击configure,需要特殊选择的就是下图位置。
    在这里插入图片描述

  • 使用vcpkg做toolchain, 之后configure开始

在这里插入图片描述

  • 正常的configure结束之后会报个错,我们需要将下载的swig给选中

在这里插入图片描述

他让选择的是下面的那个exe,选中exe之后会自动选中相对应的文件夹和版本号

  • 接下来conifgure就不会报错啦,generate也不会报错
  • 之后open project 打开文件就可以进行编译啦

在这里插入图片描述

  • 等待编译完成。

在这里插入图片描述

http://www.lryc.cn/news/35085.html

相关文章:

  • HTML 简介
  • 2023浙江省赛“信息安全管理与评估“--数字取证调查--网络数据包分析解析(高职组)
  • 【Redis应用】查询缓存相关问题解决(二)
  • 【SpringCloud】SpringCloud教程之Nacos实战(三集群配置)
  • 什么是激励能力?HR人才测评
  • 【刷题笔记】之滑动窗口(长度最小的子数组、水果成篮、最小的覆盖子串)
  • 【JavaScript速成之路】JavaScript函数
  • 萤火虫算法优化SVM变压器故障分类预测,fa-svm分类预测,libsvm参数优化
  • JavaScript DOM API的使用
  • Vue组件库出现$listeners is readonly等错误的原因及预防方法
  • lsusb
  • Allegro如何在PCB中添加层面操作指导
  • 淘宝widget链路方案总结
  • c++指针
  • Qt 贴图实现方向控制盘
  • 建模杂谈系列211 ADBS的取数模式以及衔接
  • 易基因:RRBS揭示晚年锻炼可以减缓骨骼肌表观遗传衰老(甲基化年龄)|新研究
  • JVM的基本知识
  • STM32移植FreeRTOS操作系统
  • 【专项训练】泛型递归、树的递归
  • React18 setState是同步还是异步?
  • Kafka消费者 TCP管理
  • 软考高级备考哪一个类型好些?
  • 2023 HBU 天梯赛第一次测试 题目集
  • 华为OD机试题,用 Java 解【子序列长度】问题
  • 内网环境解决SSL证书问题
  • 数据分析方法01对比分析法
  • 基于SMOKE多模式排放清单处理技术及EDGAR/MEIC清单制作与VOCs排放量核算
  • CSS流动布局-页面自适应
  • 3.Elasticsearch初步进阶