当前位置: 首页 > 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 打开文件就可以进行编译啦

在这里插入图片描述

  • 等待编译完成。

在这里插入图片描述

相关文章:

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应用】查询缓存相关问题解决(二)

&#x1f697;Redis应用学习第二站~ &#x1f6a9;起始站&#xff1a;【Redis应用】基于Redis实现共享session登录(一) &#x1f6a9;本文已收录至专栏&#xff1a;Redis技术学习 &#x1f44d;希望您能有所收获&#xff0c;底部附有完整思维导图 一.概述 本篇我们会一起来学习…...

【SpringCloud】SpringCloud教程之Nacos实战(三集群配置)

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

什么是激励能力?HR人才测评

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

【刷题笔记】之滑动窗口(长度最小的子数组、水果成篮、最小的覆盖子串)

滑动窗口模板//滑动窗口模板&#xff1a;注意使用滑动窗口方法&#xff0c;使用一个 for(while) 循环中的变量是用来控制终止位置的//最小滑窗&#xff1a;给定数组 nums&#xff0c;定义滑动窗口的左右边界 i、j&#xff0c;求满足某个条件的滑窗的最小长度 for(j 0; j < …...

【JavaScript速成之路】JavaScript函数

&#x1f4c3;个人主页&#xff1a;「小杨」的csdn博客 &#x1f525;系列专栏&#xff1a;【JavaScript速成之路】 &#x1f433;希望大家多多支持&#x1f970;一起进步呀&#xff01; 文章目录前言1&#xff0c;函数基础1.1&#xff0c;函数概念1.2&#xff0c;函数使用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等错误的原因及预防方法

本文主要是面向写组件库的人士&#xff0c;而不是组件库的使用人士。 出现原因 根本原因是因为组件库的package.json中 dependencies包含了vue包&#xff0c;然后导致最后打包出来的组件库也包含vue包 然后和引用这个组件库的项目中的vue发生冲突。 举个例子&#xff0c;pro…...

lsusb

用法&#xff1a; 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生态的演进过程中我们发现如何匹配用户的偏好一直以来是一个挑战工作&#xff0c;本文介绍了widget的整体链路。业务背景▐ widget介绍2020年底iOS推出了新版widget之后引起了一些声浪&#xff0c;但仍然很多苹果用户并不了…...

c++指针

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

Qt 贴图实现方向控制盘

一、效果走一波 二、使用贴图进行不规则按钮的设计与开发 开发环境描述&#xff1a;QtCreator Qt Desinger &#xff08;1&#xff09;首先准备待贴的图片 ​ 图片的切片大小必须一样&#xff0c;背景为透明的&#xff1b;将待贴的所有图片都切下来&#xff0c;文件标明名称…...

建模杂谈系列211 ADBS的取数模式以及衔接

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

易基因:RRBS揭示晚年锻炼可以减缓骨骼肌表观遗传衰老(甲基化年龄)|新研究

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。2021年12月21日&#xff0c;美国阿肯色大学、德克萨斯大学和肯塔基大学的研究人员合作在《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源码下载&#xff08;1&#xff09;移植钱得准备前菜对吧&#xff0c;我们先来去官网瞄一瞄网址&#xff1a;https://freertos.org/zh-cn-cmn-s/ 第一步&#xff1a;点击下载FreeRTOS第二步&#xff1a;选择版本下载&#xff08;我选择稳定版本&#xff09;注&…...

【专项训练】泛型递归、树的递归

递归和循环没有明显的边界! 不要进行人肉递归! 找最近重复子问题,直接写递归! 数学归纳法思维:1,2,…… 70. 爬楼梯 https://leetcode.cn/problems/climbing-stairs/ 互斥,且加在一起是全部答案! 动态规划法:用数组做递推,就是动态规划!!! class Solution...

React18 setState是同步还是异步?

相信大家对于react的setState肯定是不陌生了, 这是一个用于更新状态的函数. 但是在之前有一道非常经典的面试题就是关于setState是同步还是异步的问题, 具体可以参考我之前写的一篇文章: 一篇文章彻底理解setState是同步还是异步&#xff01;. 对于react 18之前的版本, 上文说的…...

Kafka消费者 TCP管理

Kafka消费者 TCP管理创建 TCPFindCoordinator连接协调者消费数据TCP 连接数关闭 TCP 连接消费者的程序入口类是 KafkaConsumer 构建 KafkaConsumer 时 &#xff0c;不会创建任何 TCP 连接TCP 连接是用 KafkaConsumer.poll 创建 创建 TCP poll 创建 TCP 的地方 : 发起 FindC…...

软考高级备考哪一个类型好些?

软考高级是比中级和初级难&#xff0c;科目就要考三科&#xff0c;选择题基础知识简答题案例分析写作论文 软考高级科目有&#xff1a;信息系统项目管理师、系统分析师、系统架构设计师、网络规划师、系统规划与管理师。如下&#xff1a; 软考高级中高项信息系统项目管理师师比…...

2023 HBU 天梯赛第一次测试 题目集

目录 1 建校日期 2 发射小球 3 背上书包去旅行 4 吉利的数字 5 向前走 6 热水器 7 走方格 8 朋友圈 9 交保护费 10 走方格 11 和与积 12 缩短字符串 13 买木棒 1 建校日期 在2022 ICPC沈阳站上&#xff0c;东北大学命题组给参赛的选手们出了一道签到题&#xff0…...

华为OD机试题,用 Java 解【子序列长度】问题

华为Od必看系列 华为OD机试 全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典使用说明 参加华为od机试,一定要注意不…...

内网环境解决SSL证书问题

本来这个没什么好写的&#xff0c;但是坑实在有点多&#xff0c;不得不写个文章记录下来。 创建证书看这里&#xff01;&#xff01;&#xff01; 很多知识点要结合这个页面内容来看。 创建证书已经看过相关文章&#xff0c;然后用unity跑的时候发现连不上&#xff0c;完全没…...

数据分析方法01对比分析法

对比分析法 1、概念 基于相同的数据标准下&#xff0c;把两个及以上相互联系的指标数据进行比较&#xff0c;准确量化的分析他们的差异&#xff0c;说明研究对象在规模大小&#xff0c;水平高低&#xff0c;速度快慢等的不同表现&#xff0c;目的是为了找到差异的原因&#x…...

基于SMOKE多模式排放清单处理技术及EDGAR/MEIC清单制作与VOCs排放量核算

查看原文>>>基于SMOKE多模式排放清单处理技术及EDGAR/MEIC清单制作与VOCs排放量核算 (qq.com)随着我国经济快速发展&#xff0c;我国面临着日益严重的大气污染问题。近年来&#xff0c;严重的大气污染问题已经明显影响国计民生&#xff0c;引起政府、学界和人们越来越…...

CSS流动布局-页面自适应

项目中经常会碰到页面自适应的问题&#xff0c;例如&#xff1a;商城的列表展示、分类列表展示等页面&#xff0c;如下&#xff1a; 该页面会随着页面的放大缩小而随之发生变化&#xff0c;这种自适应的页面布局在大屏幕、小屏幕、不同的浏览器设备上都应该呈现出与设计匹配的…...