在 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 來說,就有點痛苦了——為了能支持所有的庫——它只把路徑引用到了
〜/圖書館/Arduino15/包/Arduino的/硬件/四月/1.6.11/圖書館 ,所以,引用的時候,要這麼寫:
#include <SPI / src目錄/ spi.h中>
這樣,Xcode 就能夠識別了。
當然,這樣的話放到官方的 IDE 裡就又不行了,目前的話,反正 include 不多,手動改一下吧,如果多的話……用宏來定義吧。
更新,感謝 @rei_vilo ,其實在 embedXcode 中不應該直接引用需要的頭文件,而是應該把需要的系統庫放在你的編譯目錄,然後在 makefile 中修改對應的參數即可,比如對應我這個情況,那麼就應該在 makefile 中找到
APP_LIBS_LIST = 0 然後將它改成 APP_LIBS_LIST = SPI
這樣一來,IDE 會幫你做剩下的事情了。
延伸閱讀:
圖書館APP_LIBS_LIST和USER_LIBS_LIST變量
本文由 落格博客 原創撰寫:落格博客 » embedXcode 找不到 Arduino 系統庫頭文件
轉載請保留出處和原文鏈接:https://www.logcg.com/archives/1761.html
embedXcode 要收費,求它的下載包(沒錢下呢!),謝謝!