因为要设计一下硬件的走线,在Arduino Forum上看到大家都是用的Fritzing,于是便也想着下载安装使用,打开官网,只看到 Pay & Download, 上面有着两个单选框(必选),一个是8欧元和25欧元。

image-20220307170358548

显然第一次使用,我是舍不得这些钱的,便想着搜索Cracked Version, 未果,返回到官网,发现原来这个软件在Github是开源的,主要用Qt,便想着尝试自己编译一下。

1.获取源代码

主程序代码库

git clone https://github.com/fritzing/fritzing-app.git

以及一些其他组件

git clone https://github.com/fritzing/fritzing-parts.git

2.下载安装Qt

根据官方文档现在最新用到的Qt版本是5.15.2,为了方便起见,我直接通过Brew安装Qt5,至于如何安装和使用brew,请看我的这篇文章如何使用强大的软件包管理器Homebrew

brew install qt5

然后官方是建议安装Qt Creator,但我在后面看到Mac可以直接使用Xcode编译,刚好自己电脑上有Xcode,于是便想着先不安装Qt Creator。(首先申明未成功,可能环境不同)

使用Qt和Xcode构建Fritzing

  1. 下载安装Xcode,如果已经安装了,进入下一步。

  2. 完成之前的准备工作

  3. 使用 QT bin 文件夹中的软件工具 qmake。cd到您的 Fritzing 代码文件夹并执行以下操作:

    cd /Users/you/Documents/fritzing-app
    qmake -spec macx-xcode
    
  4. 构建成功后,打开 Fritzing.xcodeproj.

  5. 从构建菜单项中选择 Build and go.

我在第三步就卡了,最后报错

objc[8754]: Class AMSupportURLConnectionDelegate is implemented in both /usr/lib/libamsupport.dylib (0x1fd9a3678) and /Library/Apple/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice (0x107f282c8). One of the two will be used. Which one is undefined.
objc[8754]: Class AMSupportURLSession is implemented in both /usr/lib/libamsupport.dylib (0x1fd9a36c8) and /Library/Apple/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice (0x107f28318). One of the two will be used. Which one is undefined.
Project ERROR: Configure tests are not supported with the XCODE Makefile generator.

应该是我的这个Xcode版本不兼容

安装Qt Creator

官方一直推荐用Qt Creator

我们还是用brew安装

brew install qt-creator

安装完后,能正常打开。

3.安装依赖

Boost

如果您的系统上尚未安装 Boost,请下载最新的源代码版本(或使用您的包管理器)

我下载的是1.78.0,你可以直接去官网下载。下载完后,解压,然后将boost_1_78_0文件夹移到fritzing-app文件夹即可。

libgit2

在Linux中,你可以直接使用包管理器来安装,例如Ubuntu中使用sudo apt install libgit2-dev安装

我们直接使用静态的libgit2,从Libgit2 Release 中下载,然后解压,同样将文件夹移动到fritzing-app ,然后构建即可。cd进入libgit2-1.4.2文件夹,然后使用下面的命令构建

mkdir build && cd build
cmake -DBUILD_SHARED_LIBS=OFF ..
cmake --build .

image-20220307195731135

4.运行

进入Fritzing(fritzing-app)主项目文件夹,然后点击phoenix.pro,打开Fritzing Qt项目。

进来后,是这样一个界面,显示No suitable kits found.

image-20220307210158843

这是因为没有配置Qt的路径,因为我们是通过homebrew安装的Qt,我直接通过which qmake,然后,找到了Qt5的安装路径/opt/homebrew/opt/qt@5

点击options,然后选择Qt Version,点击Add,进入Qt路径中的bin目录,然后选择qmake即可。如下图所示。

image-20220307211006020

然后是配置Kits,只需要选择需要的Kit,然后往下滑,找到Qt Version,选择合适的版本即可

image-20220307211409858

然后回到之前的界面,这时候我没就可以选择下面的kits了,然后点击Configure Project,就进入到了主页面。

点击左侧的Projects Tab进入项目设置,再点击Run,将下面的内容填入Command Line arguments,(注意更改为自己本地的路径)

-f "/path/to/fritzing-app/" -parts "/path/to/fritzing-parts/" -db "/path/to/fritzing-parts/parts.db"

image-20220307212435412

构建过一次后,记得将后面的db参数删掉

-f "/path/to/fritzing-app/" -parts "/path/to/fritzing-parts/"

5.解决出错

1.libgit2路径不对

出错信息如下

Project ERROR: libgit2 include path not found in /Users/loyio/Fritzing/fritzing-app/../libgit2/include

根据上面的/Users/loyio/Fritzing/fritzing-app/../libgit2/include路径,将libgit2放到正确位置,同时更改文件名。

2.Boost路径和版本错误

出错信息

Project MESSAGE: Boost 1.54 has a bug in a function that Fritzing uses, so download or install some other version Project ERROR: Easiest to copy the Boost library to …, so that you have …/boost_1_xx_0

根据下面的图片,可以排除是版本错误,非常明显是路径错误,我将两个检测脚本放到一起对比,可以发现一个是带有主项目路径,一个是单纯的相对路径。

CleanShot 2022-03-07 at 22.47.43@2x

最后将boost_1_78_0放到了fritzing-app的上一层目录,最终是解决了这个错误。

3.Xcode构建项目出错

解决好上面的问题后,没想到又绕回到原来的问题

Project ERROR: Configure tests are not supported with the XCODE Makefile generator.

无法构建Xcode项目,最终也就无法编译程序