Bonsoir,
Je cherche à créer une librairie à partir de fonctions Matlab (fichiers.m) pour l'utiliser dans un programme C.
J'ai généré la librairie avec la commande suivante:
mcc -W lib:librairy_perso -T link:lib calcul_carre multiplication
librairy_perso: ma librairie
calcul_carre et multiplication: mes 2 fonctions matlab
J'obtiens les fichiers librairy_perso.h, librairy_perso.lib, ainsi que d'autres fichiers (.dll, .c, etc, à priori pas à inclure dans le programme C).
J'utilise devc++ sous windows. J'ai configuré le projet pour y inclure les liens vers la bibliothèque Matlab Component Runtime, ainsi que vers librairy_perso.lib.
J'ai également rajouté ces liens dans les options du compilateur.
Lors de la compilation j'ai une série de 'linker error' comme:
1 2 3 4
| [Linker error] undefined reference to `calcul_carre'
[Linker error] undefined reference to `mclWrite'
[Linker error] undefined reference to `mclMlfFeval'
etc etc etc |
Je ne vois pas ce qu'il faut linker en plus de ce que j'ai déjà mis!! Est-ce que quelqu'un voit comment résoudre ce problème?
Merci
Edit: J'ai pris soin d'installer MCR
Edit 2: Résolu, je n'avais pas inclus les bon fichiers à mon projet. En mettant juste main.c et en déclarant le .h au début du programme ça compile. Il faut aussi penser à ajouter le fichier .lib à l'éditeur de lien, et configurer les répertoires du compilateur pour qu'il aille chercher les librairies et en-tête du Matlab Component Runtime. Bizarrement j'ai du en plus ajouter manuellement le fichier mclmcrrt.lib à l'éditeur de lien pour que ça marche.
Partager