Je suis en train d'utiliser le package LIBSVM sur Eclipse IDE en utilisant C.Erreur reliant mon fichier svm.cpp à l'aide LIBSVM avec mon programme C
Dans le fichier README, il indique que « Vous devez #include » svm .h "dans vos fichiers source C/C++ et liez votre programme avec` svm.cpp '. "
J'ai déjà inclus "svm.h" dans tous mes fichiers source et j'ai ajouté mon fichier "svm.cpp" dans le dossier du code source. Cependant, j'ai une erreur "modèle avec C linkage" dans le fichier 'svm.cpp'.
L'erreur est-elle liée à la façon dont j'ai ajouté le fichier 'svm.cpp' dans mon programme? Je ne comprends vraiment pas et j'ai essayé de chercher partout.
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
J'ai utilisé la version que vous avez liée, mais j'ai ajouté le "C" externe par moi-même parce que je pensais que c'était nécessaire. Est-ce faux? Parce que quand je n'ai pas ajouté extern "C", il y avait plus d'erreurs, comme: "référence non définie à '_Heap_Begin'" etc ... Y at-il de toute façon pour résoudre ce problème? –
@RyanJaya J'ai mis à jour la réponse. –