我为Arduino Leonardo写了自己的图书馆。它由一些头文件组成,所有定义的方法都在* .c-files中实现。当我用Eclipse编译它时一切正常,但Arduino IDE的编译器没有得到方法。它返回错误消息:
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库目录中找到,所有库都包括在内...... 我搜索了一些为arduino实现C库的例子,但我发现只有一些用于C ++。
也许你知道这里有什么问题,我尝试了很多但却失败了:(
答案 0 :(得分:3)
也许这只是名字错误。将函数声明为extern "C"
,或将它们编译为C ++(将文件重命名为.cpp
或在编译时将-x c++
标志传递给GCC。)