我想寫一個Arduino庫(有效的C++類),它本身引用另一個庫,我已經安裝在我的Mac的〜/ Documents/Arduino/libraries目錄中。是否有可能使用Arduino IDE從另一個庫中包含一個庫?
在我寫的庫的.cpp的頂部,我已經試過
#include <ReferencedLibrary.h>
和
#include "ReferencedLibrary.h"
...兩者都不工作。我可以在我的〜/ Documents/Arduino目錄中從草圖成功地獲得#include <ReferencedLibrary.h>
。我錯過了什麼,或者這是Arduino IDE/makefile的限制嗎?有沒有解決方法?
這可能看起來像一個黑客,但它符合整個處理範例。基本上,一張素描是用來將所有工件拼接在一起的,因此提供草圖中的所有膠合邏輯是非常合適的。 – SRM
這是「邪惡」。庫的概念是抽象的功能,並提供一個簡潔的API使用。 '#include「lib.h」'應該是獲取庫所需的全部(假設它在加載路徑中)。要求圖書館的客戶瞭解圖書館的內部運作情況顯然是錯誤的。 –
有一些討論表示用戶必須在主草圖中包含所有參考庫。但是,即使執行此操作似乎也會爲宏或定義在依賴庫頭中的數組產生多個定義錯誤,並且排除依賴源文件中的頭會導致無法找到那些相同的符號。滿足庫依賴性的唯一方法是將所有頭文件和源代碼包含在同一個目錄中(或者遍歷所有包含語句,並將路徑更改爲相對路徑,這是包裝第三方庫時的難題,而且幾乎不可移植)。 –