在 Mac 上玩 Arduino,除了可以使用官方的那个简单的 IDE 之外,还可以选择使用 Xcode 来进行开发。
使用 embedXcode 插件即可让 Xcode 摇身一变成为嵌入式开发 IDE,包括了本地编译、上传等全套功能。
不过,在使用标准库的时候就出了问题,比如上图中,我在测试 nRF24L01 这个 SPI 模块,需要用到 SPI.h 这个头文件,一般的写法就是: #include <SPI.h>
然而,这时候在 Xcode 中编译的话,原本正常的代码却遇到了错误:
当然了,这时候如果去官方 IDE 编译的话,是一切正常的,那么问题就出在了 Xcode 上。
这里我们先手动找到头文件的位置,它位于官方 IDE 的程序文档目录里:
1 |
<del>~/Library/Arduino15/packages/arduino/hardware/avr/1.6.11/libraries/SPI/src/SPI.h</del> |
如上所示,目录比较深,官方自己的 IDE 自然没问题,但对于 embedXcode 来说,就有点痛苦了——为了能支持所有的库——它只把路径引用到了
~/Library/Arduino15/packages/arduino/hardware/avr/1.6.11/libraries ,所以,引用的时候,要这么写:
#include <SPI/src/SPI.h>
这样,Xcode 就能够识别了。
当然,这样的话放到官方的 IDE 里就又不行了,目前的话,反正 include 不多,手动改一下吧,如果多的话……用宏来定义吧。
更新,感谢 @rei_vilo ,其实在 embedXcode 中不应该直接引用需要的头文件,而是应该把需要的系统库放在你的编译目录,然后在 makefile 中修改对应的参数即可,比如对应我这个情况,那么就应该在 makefile 中找到
APP_LIBS_LIST = 0 然后将它改成 APP_LIBS_LIST = SPI
这样一来,IDE 会帮你做剩下的事情了。
延伸阅读:
Libraries APP_LIBS_LIST and USER_LIBS_LIST Variables
本文由 落格博客 原创撰写:落格博客 » embedXcode 找不到 Arduino 系统库头文件
转载请保留出处和原文链接:https://www.logcg.com/archives/1761.html
embedXcode 要收费,求它的下载包(没钱下呢!),谢谢!