因为要设计一下硬件的走线,在Arduino Forum上看到大家都是用的Fritzing,于是便也想着下载安装使用,打开官网,只看到 Pay & Download, 上面有着两个单选框(必选),一个是8欧元和25欧元。
显然第一次使用,我是舍不得这些钱的,便想着搜索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
下载安装Xcode,如果已经安装了,进入下一步。
完成之前的准备工作
使用 QT bin 文件夹中的软件工具 qmake。cd到您的 Fritzing 代码文件夹并执行以下操作:
cd /Users/you/Documents/fritzing-app qmake -spec macx-xcode
构建成功后,打开
Fritzing.xcodeproj
.从构建菜单项中选择 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 .
4.运行
进入Fritzing(fritzing-app
)主项目文件夹,然后点击phoenix.pro
,打开Fritzing Qt项目。
进来后,是这样一个界面,显示No suitable kits found
.
这是因为没有配置Qt的路径,因为我们是通过homebrew安装的Qt,我直接通过which qmake
,然后,找到了Qt5的安装路径/opt/homebrew/opt/qt@5
。
点击options,然后选择Qt Version
,点击Add
,进入Qt路径中的bin目录,然后选择qmake
即可。如下图所示。
然后是配置Kits,只需要选择需要的Kit,然后往下滑,找到Qt Version
,选择合适的版本即可
然后回到之前的界面,这时候我没就可以选择下面的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"
构建过一次后,记得将后面的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
根据下面的图片,可以排除是版本错误,非常明显是路径错误,我将两个检测脚本放到一起对比,可以发现一个是带有主项目路径,一个是单纯的相对路径。
最后将boost_1_78_0
放到了fritzing-app
的上一层目录,最终是解决了这个错误。
3.Xcode构建项目出错
解决好上面的问题后,没想到又绕回到原来的问题
Project ERROR: Configure tests are not supported with the XCODE Makefile generator.
无法构建Xcode项目,最终也就无法编译程序