2009-10-28 6 views
1

J'utilise MATLAB intégré pour générer du code C à partir d'un script .m. Cependant, après la génération, il me reste environ 15 fichiers (la plupart d'entre eux sont source). Si je veux écrire un fichier principal autonome en C, comment puis-je lier le code généré par MATLAB? Y at-il un moyen de le faire sans écrire mon propre Makefile?Liaison au code généré par MATLAB


Je compris comment générer des bibliothèques statiques (.a) avec Matlab code généré ... puis-je construire des bibliothèques chargées dynamiquement (.so)?

Répondre

2

Je ne sais pas si cela est particulier à mon projet, mais je trouve que je peux inclure des fichiers générés par Matlab de la même manière que vous incluriez normalement n'importe quoi d'autre.

Je copie directement mes fichiers sources matlab générés (.c et .h) dans mon projet, puis je les ajoute spécifiquement à mon projet. (Je me demande si cela a plus à voir avec l'IDE que j'utilise). Puis, dans main.c que vous créez, ajoutez simplement la ligne #include "yourGeneratedFile.h". Dans main.c maintenant, vous devriez pouvoir utiliser toutes les fonctions créées par Matlab.

Par exemple, dans un exemple:

au sein main.c, le fichier d'en-tête et d'utiliser la fonction dont vous avez besoin

#include "SPIUARTDemo30f.h" 

//further down in the file 

    SPIUARTDemo30f_step(); //using the function I asked Matlab to generate 

SPIUARTDemo30f.h et SPIUARTDemo30f.c sont les fichiers générés à partir de Matlab :

dans le .h vous verrez

extern void SPIUARTDemo30f_step(void); 

et, si y ou regardez le .c vous trouverez:

void SPIUARTDemo30f_step(void) 
{ 
    /* lots of code */ 
} 
+0

ah, donc j'ai fait quelques progrès sur ma question initiale. Fondamentalement, tout fonctionne bien. Cependant, le fichier make matlab génère des limites à la création de bibliothèques statiques. Ma nouvelle question est: comment puis-je créer des bibliothèques chargées dynamiquement, c'est-à-dire comment puis-je créer des objets partagés? – devin

+0

Peut-être que cela vous aidera: http://www.adp-gmbh.ch/cpp/gcc/create_lib.html – Amro

Questions connexes