0

我目前正在使用 Arduino IDE 为我的 Teensy 编写一个库应用程序,到目前为止,它已经足够直截了当。然而,我遇到了一些奇怪的编译错误,我似乎无法理解。我的库包括众所周知的 IRRemote 库,以便我创建几乎是一个包装库的内容,以便更具体地了解我需要与 IR Remote 库交互的方式。我遇到的问题是 IR Remote 库函数之一:

void  sendRaw(const unsigned int buf[],unsigned int len, unsigned int); 

尽管这看起来像是一个直接使用的函数,但我遇到的问题是函数的第一个参数。我已经尝试了各种方法来将一些东西传递给这个函数参数,但无论我做什么,它都不会编译。目前我已经设置了一个变量

unsigned int bufferToSend[5] = {1,2,3,4,5}; // data is just for example purposes

当我尝试打电话时

sendRaw(bufferToSend, 5, 38); // Values are just for example purposes

我得到一个编译器错误

undefined reference to `IRsend::sendRaw(unsigned int const*, unsigned int, unsigned int)'

有趣的是,如果我直接从 Arduino .ino 文件中调用相同的函数,而不是通过我的库调用,代码编译并运行得非常好。我错过了一些明显的东西吗?

4

1 回答 1

1

在“一些程序员老兄”的帮助下,我能够解决这个问题。正如非常正确地指出的那样,我实际上并没有从我的库中链接到外部库。之前使用过库链接,我知道这是绝对基础的,但是对于 Arduino 及其性质,当您从 Arduino 脚本中包含时,它会编译与“on-the-go”链接的库,因此我成为思考它的受害者在自定义库中将是相同的。我在下面遇到了一个关于我的确切问题的非常好的文章,它为一些 Arduino“烟雾和镜子”魔术以及如何解决我在这里遇到的问题提供了一个很好的解释。

高级 Arduino——在您的项目中包含多个库

于 2017-08-31T09:18:21.747 回答