2017-08-22 5 views
0

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 

Antwort

0

Welche Version von LIBSVM Sie verwenden, und wo haben Sie laden Sie es von?

This version von svm.cpp tut nicht haben extern "C" um Vorlagen.

Wenn Sie sie selbst hinzugefügt haben, haben Sie keinen anderen zu beschuldigen.

Wenn Ihre Version mit extern "C" kam, ist diese Version defekt: Vorlagen können wirklich keine extern "C" Verknüpfung haben.

Update:

ich hinzugefügt, um die extern "C" von mir, weil ich dachte, es war notwendig. Ist es falsch?

Ja, ist es.

, wenn ich nicht extern „C“ nicht hinzugefügt haben, gab es mehr Fehler

Sie sollten diese Antwort auf Ihre Frage annehmen, um Ihre Änderungen entfernen und eine neue Frage stellen, die anderen Fehler Detaillierung.

+0

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? –

+0

@RyanJaya Ich habe die Antwort aktualisiert. –