Я делаю небольшую библиотеку машинного обучения для Arduino, и файл .INO не компилируется, он жалуется, что есть неопределенная ссылка на SVM_predictEEPROM, когда он четко определен в заголовке и в .cpp
Связывание .pio / build / teensy36 / firmware.elf .pio / build / teensy36 / src / main.cpp.o: в функции loop':
main.cpp:(.text.loop+0x3e): undefined reference to
SVM_predictEEPROM (float *, unsigned char) 'collect2: error: ld вернул 1 выходstatus
Файлы библиотеки: здесь и ниже
Пример:
#include "noveltyDetection.h"
#include <Arduino.h>
void setup(){
Serial.begin(9600);
while(!Serial);
}
void loop(){
//Assumes 3 features
float data[] = {analogRead(A0), analogRead(A1), analogRead(A2)};
float ret = SVM_predictEEPROM(data, 3);
int recognisedClass;
if (ret > 0) {
Serial.println("Not Novelty");
recognisedClass = 1;
} else {
Serial.println("Novelty");
recognisedClass = -1;
}
delay(1000);
}
noveltyDetection.cpp
#include "noveltyDetection.h"
inline float SVM_predictEEPROM(float* sensor, uint8_t nSensor) {
}
noveltyDetection.h
#ifndef NOVELTY_DETECTION_H
#define NOVELT_DETECTION_H
inline float SVM_predictEEPROM(float*, uint8_t);
#endif
noveltyDetection.cpp noveltyDetection.h
Любая помощь приветствуется, спасибо.