2

我为 Arduino Leonardo 编写了自己的库。它由一些头文件组成,所有定义的方法都在 *.c 文件中实现。当我用 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++ 的示例。

也许您知道这里出了什么问题,我尝试了很多但失败了:(

4

1 回答 1

3

也许这只是名称修饰。要么将函数声明为extern "C",要么将它们编译为 C++(在编译时将文件重命名为 GCC.cpp或将-x c++标志传递给 GCC)。

于 2013-05-13T20:54:57.060 回答