2013-05-13 204 views
2

我爲Arduino Leonardo編寫了自己的庫。它由一些頭文件組成,所有定義的方法都在* .c文件中實現。當我用Eclipse編譯它時,一切正常,但Arduino IDE的編譯器不能獲取這些方法。它返回的錯誤信息:Arduino編譯器在C庫中找不到實現的方法

impl.cpp:20: undefined reference to initOptiCom() 
impl.cpp:21: undefined reference to calc(unsigned char*, int) 
impl.cpp:25: undefined reference to getInitSeq(unsigned char*, long*, long) 
impl.cpp:32: undefined reference to decode(unsigned char*, long) 
collect2: error: ld returned 1 exit status 

所有文件都可以在Arduino的庫目錄中找到,所有的庫都包含... 我搜索了一些例子,實現C-庫Arduino的,但我發現只是一些爲C++。

也許你知道什麼是錯在這裏,我嘗試了很多卻失敗:(

回答

3

也許它只是名字粉碎。無論是聲明功能extern "C",或把它們編譯成C++(該文件重命名爲.cpp或通過-x c++標誌GCC編譯時)。

+0

真快,謝謝! 我加 「的#ifdef __cplusplus 的extern 「C」{ #ENDIF 的#ifdef __cplusplus } //轉ern「C」 #endif' 圍繞它,現在它的工作原理:-) – famalgosner 2013-05-13 21:03:23

相關問題