Comment appeler les fonctions Matlab à partir de C ++
Je tiens à appeler la fonction MATLAB dans mon projet de C++.
Je suis en utilisant Matlab R2010a et Visual Studio 2010
J'ai d'abord créé une simple fonction matlab:
function y = foo(x)
y = x+1;
et ensuite, j'ai utilisé matlab compilateur pour compiler cette fonction à l'aide de matlab GUI compilateur (Fichier-> new -> Projet de Déploiement et puis choisir C++ de la Bibliothèque partagée). Il produit ce fichiers 2 dossiers: distrib et src.
distrib contient:
- foo.dll
- foo.h
- foo.lib
src contient :
- foo.cpp
- foo.dll
- foo.exp
- foo.les exportations
- foo.h
- foo.lib
- foo_mcc_component_data.c
Je veux utiliser ce fichier dans une application C++. J'ai essayé plusieurs fois et je n'ai pas trouver un moyen. De toutes les façons que j'ai trouvé sur l'internet à l'aide de vieux matlab compilateur qui génère des fichiers ou des travaux sur une ancienne version de visual studio.
Veuillez donc quelqu'un pourrait-il m'aider?
Que dois-je faire? Quels fichiers/références dois-je ajouter et où? Quels sont les chemins que je dois définir?
source d'informationauteur Amr Ramadan
Vous devez vous connecter pour publier un commentaire.
peut-être que c'est trop tard, mais pour l'avenir.
Inclure
foo.h
.Ajouter C/C++-Général-Autres Répertoires include le chemin de l'matlab en-têtes (
C:\Program Files (x86)\MATLAB\R2009b\extern\include
).Ajouter
foo.lib
mclmcrrt.lib
etmclcommain.lib
pour éditeur de liens de Dépendances Supplémentaires.Pour de l'éditeur de liens dans Bibliothèque Supplémentaire Répertoires montrer le chemin de votre matlab libs(
C:\Program Files (x86)\MATLAB\R2009b\extern\lib\win32\microsoft
pour les 32 bits ver (matlab et VS les versions doivent être la même. J'ai dû installer le deuxième Matlab version 32 bits.)).J'ai ajouté le chemin de la
foo.lib
dans mon chemin d'accès système.Avant d'utiliser votre bibliothèque
foo.dll
vous devez les initialiser MCR et la fonction de la bibliothèque.Après utilisation, n'oubliez pas:
Et certains code de démonstration, ressemble:
Les fichiers
foo.h
etfoo.lib
seront nécessaires pour la compilation de votre application. Lefoo.dll
fichier devra être livré avec votre application qui en résulte, en général dans le même répertoire.Si vous mettez le
foo.h
fichier dans le même répertoire que vos fichiers source, vous n'aurez pas besoin de faire quelque chose de spécial à#include "foo.h"
. Vous pouvez également ajouter le chemin direct versfoo.lib
à l'extérieur de l'éditeur de liens de dépendances.Si vous souhaitez stocker ces fichiers à l'extérieur de votre dossier de projet et/ou de ré-utiliser ces fichiers dans d'autres applications, vous pouvez lire sur Répertoires de VC++, les Projets et les Solutions.
Modifier: Vous avez sans doute aussi besoin d'ajouter de l'MATLAB bibliothèques à votre bibliothèque et les chemins d'accès. Découvrez the MathWorks solution de support Pourquoi dois-je recevoir le message d'erreur " impossible de trouver le fichier include "mclmcrrt.h"' lorsque vous essayez de compiler une application stand-alone?