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的官网
-
点击红框位置下载相关软件。
-
进入到安装包内使用msys2_shell.cmd运行(这里请跟步骤,一定要到安装包内点击cmd的运行文件运行)
-
在运行的程序中输入pacman -Syu,等执行完成后关闭界面。
-
打开mingw64.exe
-
执行如下代码:
# 首先需要安装对应的包,下面的代码需要一句一句执行
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
- 在上面操作完成执行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控制台
- 之后您将进入较长时间的编译等待
搞了半天,编译出来的exe是不能运行的,我也不知道为什么,所以我尝试了使用vs去编译项目。
使用Visual Studio 编译KiCad
- 首先你需要下载如下软件:
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
- 接下来你需要使用vcpkg安装以下依赖
./vcpkg.exe install glew glm boost wxwidgets curl cairo
- 然后你需要尝试将你的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 打开文件就可以进行编译啦
- 等待编译完成。
相关文章:

KiCad 编译
KiCad 编译 因为最新项目需要,所以看了一下KiCad的编译,这里介绍的是64位电脑的编译,32位小伙伴请绕道官网看教程呦。 您可以在KiCad内查看基本的编译教程。 我这里也是参考的官网编译教程进行的编译,接下来让我们一起看看吧。…...

HTML 简介
文章目录HTML 简介实例解析什么是HTML?HTML 标签HTML 元素Web 浏览器HTML 网页结构HTML版本<!DOCTYPE> 声明通用声明HTML5HTML 4.01XHTML 1.0中文编码HTML 简介 HTML 实例 <!DOCTYPE html> <html><head><meta charset"utf-8"><ti…...
2023浙江省赛“信息安全管理与评估“--数字取证调查--网络数据包分析解析(高职组)
2022全国职业技能大赛“信息安全管理与评估”(高职组)任务书 2022全国职业技能大赛“信息安全管理与评估”任务书第一阶段竞赛项目试题第二阶段竞赛项目试题任务 2: 网络数据包分析第三阶段竞赛项目试题2022全国职业技能大赛“信息安全管理与评估”任务书 第一阶段竞赛项目…...

【Redis应用】查询缓存相关问题解决(二)
🚗Redis应用学习第二站~ 🚩起始站:【Redis应用】基于Redis实现共享session登录(一) 🚩本文已收录至专栏:Redis技术学习 👍希望您能有所收获,底部附有完整思维导图 一.概述 本篇我们会一起来学习…...

【SpringCloud】SpringCloud教程之Nacos实战(三集群配置)
目录前言一.Nacos集群逻辑图二.Nacos集群搭建1.搭建数据库,初始化数据库表结构2.下载Nacos3.配置Nacos3.启动Nacos4.配置启动nginx5.测试是否成功6.设置服务的nacos地址7.新增一个配置,查看数据看是否进行持久化了前言 在我前面两篇讲的都是单个nacos&a…...

什么是激励能力?HR人才测评
什么是激励能力?激励能力主要是针对管理型岗位而言的,尤其是团队型管理,既要督导团队成员,更需要掌握激励下属的方法和技巧。在HR人才测评系统中,对于管理型岗位的人才测评指标,通常也会包含激励能力&#…...

【刷题笔记】之滑动窗口(长度最小的子数组、水果成篮、最小的覆盖子串)
滑动窗口模板//滑动窗口模板:注意使用滑动窗口方法,使用一个 for(while) 循环中的变量是用来控制终止位置的//最小滑窗:给定数组 nums,定义滑动窗口的左右边界 i、j,求满足某个条件的滑窗的最小长度 for(j 0; j < …...

【JavaScript速成之路】JavaScript函数
📃个人主页:「小杨」的csdn博客 🔥系列专栏:【JavaScript速成之路】 🐳希望大家多多支持🥰一起进步呀! 文章目录前言1,函数基础1.1,函数概念1.2,函数使用1.3&…...

萤火虫算法优化SVM变压器故障分类预测,fa-svm分类预测,libsvm参数优化
目录 支持向量机SVM的详细原理 SVM的定义 SVM理论 Libsvm工具箱详解 简介 参数说明 易错及常见问题 SVM应用实例,基于fa-svm分类预测 代码 结果分析 展望 支持向量机SVM的详细原理 SVM的定义 支持向量机(support vector machines, SVM)是一种二分类模型,它的基本模型是…...

JavaScript DOM API的使用
文章目录一. 什么是DOM二. 最常用的DOM API1. 选中页面元素2. 操作元素的属性2.1 事件概念2.2 获取/修改元素内容计数器2.4 获取/修改元素属性点击图片切换2.5 获取/修改表单元素属性表单计数器全选/取消全选按钮2.6 获取修改样式属性点击文字放大实现夜间/日间模式的切换3. 操…...

Vue组件库出现$listeners is readonly等错误的原因及预防方法
本文主要是面向写组件库的人士,而不是组件库的使用人士。 出现原因 根本原因是因为组件库的package.json中 dependencies包含了vue包,然后导致最后打包出来的组件库也包含vue包 然后和引用这个组件库的项目中的vue发生冲突。 举个例子,pro…...
lsusb
用法: lsusb -hUsage: lsusb [options]... List USB devices -v, --verbose Increase verbosity (show descriptors) -s [[bus]:][devnum] Show only devices with specified device and/or bus numbers (in decimal) -d vendor:[product] …...

Allegro如何在PCB中添加层面操作指导
Allegro如何在PCB中添加层面操作指导 在用Allegro做PCB设计的时候,根据需要,会在PCB中额外添加一些额外的层面,如下图 如何添加,具体操作如下 点击Setup点击Subclasses...

淘宝widget链路方案总结
目前widget生态已经做了大量的基建工作,同时在widget生态的演进过程中我们发现如何匹配用户的偏好一直以来是一个挑战工作,本文介绍了widget的整体链路。业务背景▐ widget介绍2020年底iOS推出了新版widget之后引起了一些声浪,但仍然很多苹果用户并不了…...

c++指针
内存地址 将内存抽象成一个很大的一维字符数组,编码就是对内存的每一个字节分配一个32位或64位的二进制编号。这个内存编号称之为内存地址(唯一),内存中的每一个数据都会分配相应的地址。 #include<iostream> using namesp…...

Qt 贴图实现方向控制盘
一、效果走一波 二、使用贴图进行不规则按钮的设计与开发 开发环境描述:QtCreator Qt Desinger (1)首先准备待贴的图片 图片的切片大小必须一样,背景为透明的;将待贴的所有图片都切下来,文件标明名称…...

建模杂谈系列211 ADBS的取数模式以及衔接
说明 这应该是进一步的完善ADBS的工作模式。 之所以做A系列的架构工具,就是为了可以实现大型的数据处理、存储。从应用上说,是为了提高效率,并达到超高的效果。 为了达到这个目的,就必须从数据架构上、任务调度上、逻辑架构上作…...

易基因:RRBS揭示晚年锻炼可以减缓骨骼肌表观遗传衰老(甲基化年龄)|新研究
大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。2021年12月21日,美国阿肯色大学、德克萨斯大学和肯塔基大学的研究人员合作在《Aging Cell》杂志发表了题为“Late-life exercise mitigates skeletal muscle epigenetic aging”…...

JVM的基本知识
JVM JVM是java的虚拟机,是一个十分复杂的东西,所以掌握的要求比较高.本文主要是研究JVM的三大话题 JVM内存划分JVM类加载JVM的垃圾回收 JVM内存划分 java程序要执行的时候,JVM会先申请一块空间,这里就涉及到JVM的内存划分 堆 : 放的是new 出来的对象栈: 放的是方法之间的调…...

STM32移植FreeRTOS操作系统
一、FreeRTOS源码下载(1)移植钱得准备前菜对吧,我们先来去官网瞄一瞄网址:https://freertos.org/zh-cn-cmn-s/ 第一步:点击下载FreeRTOS第二步:选择版本下载(我选择稳定版本)注&…...

K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...

linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...

自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...
大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计
随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...