main.c:19: 对“usbInit”的未定义引用和对“usbPoll”的未定义引用
main.c:19: undefined reference to `usbInit' & undefined reference to `usbPoll'
我在使用 v-usb 构建我的项目时遇到了这个错误 library.followed 是我的代码:
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/wdt.h>
#include "usbdrv.h"
#include <util/delay.h>
USB_PUBLIC uchar usbFunctionSetup(uchar data[8]) {
return 0; // do nothing for now
}
int main() {
uchar i;
wdt_enable(WDTO_1S); // enable 1s watchdog timer
usbInit();
usbDeviceDisconnect(); // enforce re-enumeration
for(i = 0; i<250; i++) { // wait 500 ms
wdt_reset(); // keep the watchdog happy
_delay_ms(2);
}
usbDeviceConnect();
sei(); // Enable interrupts after re-enumeration
while(1) {
wdt_reset(); // keep the watchdog happy
usbPoll();
}
return 0;
}
这是usbdrv.h中的相对部分:
#ifndef USB_PUBLIC
#define USB_PUBLIC
#endif
USB_PUBLIC void usbInit(void);
USB_PUBLIC void usbPoll(void)
有人可以帮助我吗?
我猜你忘了将 usbdrv-c 文件添加到你的 makefile 中,或者它们可能已经编译过,你必须将它们作为 lib 添加到你的 make 文件中。 (但是对于 v-usb 你必须添加 c 文件)
请阅读库的文档并查看可用于 v-usb 的大量示例。
我在使用 v-usb 构建我的项目时遇到了这个错误 library.followed 是我的代码:
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/wdt.h>
#include "usbdrv.h"
#include <util/delay.h>
USB_PUBLIC uchar usbFunctionSetup(uchar data[8]) {
return 0; // do nothing for now
}
int main() {
uchar i;
wdt_enable(WDTO_1S); // enable 1s watchdog timer
usbInit();
usbDeviceDisconnect(); // enforce re-enumeration
for(i = 0; i<250; i++) { // wait 500 ms
wdt_reset(); // keep the watchdog happy
_delay_ms(2);
}
usbDeviceConnect();
sei(); // Enable interrupts after re-enumeration
while(1) {
wdt_reset(); // keep the watchdog happy
usbPoll();
}
return 0;
}
这是usbdrv.h中的相对部分:
#ifndef USB_PUBLIC
#define USB_PUBLIC
#endif
USB_PUBLIC void usbInit(void);
USB_PUBLIC void usbPoll(void)
有人可以帮助我吗?
我猜你忘了将 usbdrv-c 文件添加到你的 makefile 中,或者它们可能已经编译过,你必须将它们作为 lib 添加到你的 make 文件中。 (但是对于 v-usb 你必须添加 c 文件)
请阅读库的文档并查看可用于 v-usb 的大量示例。