我目前正在使用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文件中调用相同的函数而不是通过我的库调用,代码编译并运行得非常好。我错过了一些明显的东西吗?
答案 0 :(得分:1)
在一些程序员家伙的帮助下,我能够解决这个问题。正如非常正确地指出的那样,我实际上并没有从我的库中链接外部库。之前曾与图书馆联系过,我知道这绝对是根本性的,但是对于Arduino及其性质,它编译了与“随时随地”相关联的图书馆。当你从Arduino脚本中加入时,我就会认为它在自定义库中是相同的。我在下面发现了一个非常好的写下我的确切问题,为一些Arduino"烟雾和镜子提供了一个很好的解释。魔术以及如何解决我在这里面临的问题。
Advanced Arduino – Including Multiple Libraries In Your Project