在 Arduino 中调用 C++ 库 undefined reference
时间: 2023-07-08 15:54:23 浏览: 55
如果您在 Arduino 中调用 C++ 库时遇到“undefined reference”错误,可能是因为您未正确链接库。
在 Arduino 中,您需要在 sketch 中添加函数原型或定义,否则编译器会抛出未定义引用的错误。这是因为 Arduino IDE 使用了一个特殊的编译器选项 -fno-exceptions,这意味着您需要在代码中提供所有函数的定义或原型。
要解决此问题,请按照以下步骤操作:
1.确保正确安装了 C++ 库,并将其添加到 Arduino IDE 中。
2.打开您的 sketch,并在顶部添加以下代码行:
```
#include <LibraryName.h>
```
其中,LibraryName 是您要使用的 C++ 库的名称。
3.在 sketch 中添加函数原型或定义。这将告诉编译器在链接时在库中查找该函数。
例如,假设您要使用名为 "MyLibrary" 的库中的函数 foo()。您可以在 sketch 中添加以下原型:
```
void foo();
```
或者,您可以在 sketch 中添加以下定义:
```
#include <MyLibrary.h>
void setup() {
// 初始化代码
}
void loop() {
// 循环代码
}
void foo() {
// MyLibrary 中的函数代码
}
```
请注意,如果您在库中使用了类,则需要在 sketch 中添加类定义或声明。这可以通过添加以下代码行来完成:
```
class ClassName;
```
其中,ClassName 是您要使用的类的名称。
如果您仍然遇到“undefined reference”错误,请确保您已正确链接库,并且在 sketch 中提供了所有必需的函数和类定义。