KiCad 编译

news2024/9/24 9:27:36

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.coloradmin.cn/o/400354.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

论文 | 期刊 | 专业名词解释

文章目录1. EI2. IEEE Xplore3. CN期刊3.2 CN期刊后面的数字代表什么3. SCI3.1 影响因子先立个帖子,后续用到的话随时更新1. EI 工程索引(EI)是由美国工程信息公司(Engineering information Inc.)编辑出版,历史上最悠久的一部大型综合性检索工具。 《工…

03 SWMM快速入门案例的设施参数设置与批量设置

文章目录1 雨量计1.1 雨量计基础设置1.2 雨量计数据来源2 汇水区2.1 参数讲解2.2 设置结果3 检查井3.1 参数讲解3.2 批量设置4 管道4.1 参数讲解4.2 设置结果5 出水口上一篇博客中我们已经完成了各类设施的绘制,本节对他们的参数进行设置1 雨量计 1.1 雨量计基础设…

第一章 C语言:数据存储

一、大小端存储大端存储:数据的低位字节存储在高地址小端存储:数据的低位字节存储在低地址不同编译器有不同的存储方式int a 10; char* p (char*)&a; printf("%x\n", *p); // a ---> 0000000a //0000 0000 0000 0000 0000 0…

教学场景应用视频试看预览功能

html5播放器视频预览功能效果 - 视频预览代码示例预播放一小段时间的视频内容,比如3分钟,然后引导用户付费观看或注册会员观看完整视频。原理:视频播放结束,执行s2j_onPlayOver()函数,显示提示信息或对话框&#xff0c…

Altium Designer(AD)软件使用记录03-AD软件中各层定义

Altium Designer(AD)软件使用记录03-AD软件中各层定义 重点: 1、常用的信号层:顶层,底层层,中间正片层,中间负片层 2、机械1层作为板框层,机械13层作为3D防止层,其他的机械层很少用 3、顶层阻焊…

AVL树详解+模拟实现

1:概念当数据有序,二叉搜索树将趋近于单叉树,查找元素相当于在顺序表中查找元素,效率低下,两位俄罗斯数学家G.M.Adelson-Velskii和E.M.Landis创建了AVL树。特性如下: 左右子树高度差的绝对值不超过1左右子树…

Django/Vue实现在线考试系统-06-开发环境搭建-Visual Studio Code安装

1.0 VS Code下载和安装 Visual Studio Code,简称 VS Code,是由微软公司开发的 IDE 工具。与微软其他 IDE(如 Visual Studio)不同的是,Visual Studio Code 是跨平台的,可以安装在 Windows、Linux 和 macOS平台上运行。不仅如此, Visual Studio Code 没有限定只能开发特定…

Revit中如何添加一个新的管道直径

有些时候项目当中会遇到一些管径比较小的管道,但是在直径中又没有适合的,怎么办?很简单,跟紧以下几个步理就可以了。 首先,我们拿一个管段为“铁,铸铁30”的为例子,如图1所示,系统中这管段是没…

1.数据结构的研究

数据结构很重要! 数据结构很重要!! 数据结构很重要!! ! 思考 1.数据结构研究的内容有哪些?(What) 2.为什么要研究数据结构? ? (Why) 3.如何更好的研究数据结构? ? ?(How) 注:特别…

Hadoop小结

Hadoop是什么Hadoop是一 个由Apache基金 会所开发的分布式系统基础架构。主要解决,海量数据的存储和海量数据的分析计算问题。广义上来说,Hadoop通 常是指一个更广泛的概念一Hadoop 生态圈。Hadoop优势Hadoop组成HDFS架构Hadoop Distributed File System&#xff0c…

蓝桥杯--ISBN号码

ISBN号码 技巧 数字转为字符【数字‘0’】 字符转为数字【字符-‘0’】 这道题比较简单 题目大意 每一本正式出版的图书都有一个 ISBN 号码与之对应,ISBN 码包括 9 位数字、1 位识别码和 3 位分隔符,其规定格式如 “x-xxx-xxxxx-x”,其中符号…

java多线程(二四)java多线程基础总结

一、进程与线程 1.进程 进程是操作系统结构的基础;是一次程序的执行;是一个程序及其数据在处理机上顺序执行时所发生的活动。操作系统中,几乎所有运行中的任务对应一条进程(Process)。一个程序进入内存运行&#xff…

前装L2标配车型均价连续第二年「低于」L1,市场进入爆发期

L2级辅助驾驶,正在进入市场红利期。 高工智能汽车研究院监测数据显示,2022年度中国市场(不含进出口)乘用车前装标配搭载辅助驾驶(L0-L2)交付1001.22万辆,首次突破千万辆规模,同时&a…

带你玩转spring声明式事务-使用中需要注意的点

本文向大家介绍spring声明式事务使用过程中需要注意的地方。事务特性1. 原子性(Atomicity)事务是一个原子操作,由一系列动作组成。事务的原子性确保动作要么全部完成,要么完全不起作用。2. 一致性(Consistency&#xf…

九龙证券|6G概念重新活跃 数字经济板块引领A股尾盘回升

周三,沪深两市缩量调整,沪指全天以弱势震荡为主,尾盘在数字经济概念带动下快速拉升,全天微跌0.06%,报3283.25点;深证成指跌落0.09%,报15598.29点;创业板指跌落0.26%,报23…

[算法]归并排序

参考:《漫画算法-小灰的算法之旅》 目录 参考:《漫画算法-小灰的算法之旅》 1、什么是归并排序 2、归并的具体操作 3、代码 4、时间复杂度和空间复杂度 5、归并排序是稳定排序 1、什么是归并排序 归并排序就像是组织一场元素之间的“比武大会”&…

【C++】30h速成C++从入门到精通(二叉树)

说明为什么要在C当中单独再次提及数据结构中的二叉树:map和set特性需要先铺垫二叉搜索树,而二叉搜哦书也是一种树形结构二叉搜索树的特性了解,有助于更好的理解map和set特性二叉树中部分面试题有难度有些OJ使用C语言实现比较麻烦二叉搜索树概…

Kubernetes14:Helm为了部署像微服务这种的大型项目

Kubernetes14:Helm介绍(为了部署像微服务这种的大型项目) 1、Helm的引入 (1)之前方式部署应用基本过程 编写yaml文件 1、deployment kubectl create deployment nginx --imagenginx --dryrun -o yaml > nginx.yaml2、Service kubect…

Web前端:前端开发人员的职责有哪些?

前端开发,就是要创造上面提到的网站面向用户的部分背后的代码,并通过建立框架,构建沉浸性的用户体验。前端工程师还需要确保网站在各种浏览器和设备上都能正常运行,并且能够根据用户需求不断优化和改进网站。前端开发人员的角色和…

【C语言进阶】文本与二进制操作文件,优化通讯录。

前言:上篇文章,我们已经学习了有关本地磁盘文件的常用文件操作,已经能够对本地文件进行调用与读写。我们磁盘中还存在着一些内容用二进制存储的文件,这也就是我们今天将要讲解的内容。一、文本文件与二进制文件根据数据的组织形式…