Ich versuche, das LIBSVM Paket auf Eclipse-IDE zu verwenden C mitFehler meiner svm.cpp Datei Verknüpfung mit LIBSVM mit meinem C-Programm
In der Readme-Datei, heißt es: „Sie müssen # include“ SVM .h "in Ihren C/C++ Quelldateien und verknüpfen Sie Ihr Programm mit` svm.cpp '. "
Ich habe bereits "svm.h" in alle meine Quelldateien eingefügt und ich habe meine 'svm.cpp' Datei unter dem Quellcodeordner hinzugefügt. Ich habe jedoch einen Fehler "Vorlage mit C-Verknüpfung" in der 'svm.cpp' Datei.
Hat der Fehler etwas damit zu tun, wie ich die 'svm.cpp' Datei in meinem Programm hinzugefügt habe? Ich verstehe das wirklich nicht und habe versucht, überall zu suchen.
svm.cpp:
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <float.h>
#include <string.h>
#include <stdarg.h>
#include <limits.h>
#include <locale.h>
#include "libsvm.h"
#include "main.h"
#ifdef __cplusplus
extern "C" {
#endif
int libsvm_version = LIBSVM_VERSION;
typedef float Qfloat;
typedef signed char schar;
#ifndef min
template <class T> static inline T min(T x,T y) { return (x<y)?x:y; }
#endif
#ifndef max
template <class T> static inline T max(T x,T y) { return (x>y)?x:y; }
#endif
template <class T> static inline void swap(T& x, T& y) { T t=x; x=y; y=t; }
template <class S, class T> static inline void clone(T*& dst, S* src, int n)
.
.
.
.
.
.
.
.
#ifdef __cplusplus
}
#endif
Ich habe die Version verwendet, die Sie verlinkt haben, aber ich habe das externe "C" von mir selbst hinzugefügt, weil ich dachte, dass es notwendig war. Ist es falsch? Weil, wenn ich externes "C" nicht hinzufüge, gab es mehr Fehler, wie: "undefined Verweisung auf '_Heap_Begin'" etc ... Gibt es irgendwie, dieses Problem zu beheben? –
@RyanJaya Ich habe die Antwort aktualisiert. –