views:

119

answers:

1

I'm using embedded MATLAB to generate C code from an .m script. However, after the generation I'm left with about 15 files (most of them are source). If I want to write a standalone main in C how do I link to the MATLAB generated code? Is there a way to do this without writing my own Makefile?


So I figured out how to generate static libraries (.a) with the matlab generated code... can I build dynamically loaded libraries (.so)?

A: 

I don't know if this is particular to my project, but I find that I can include Matlab generated files the same way as you would normally include anything else.

I copy my generated matlab source files (.c and .h) into my project directly, and then I have to specifically add them to my project. ( I wonder if that has more to do with the IDE I use though).

Then, in main.c that you create, just add the line #include "yourGeneratedFile.h". Within main.c now, you should be able to use whatever functions were created by Matlab.

For instance, in an example:

within main.c, include the header file and use the function you need

  #include "SPIUARTDemo30f.h"

//further down in the file

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

SPIUARTDemo30f.h and SPIUARTDemo30f.c are the generated files from Matlab:

within the .h you'll see

extern void SPIUARTDemo30f_step(void);

and, if you look at the .c you'll find:

void SPIUARTDemo30f_step(void)
{
  /* lots of code */
}
ArielP
ah, so I've made some progress on my original question. Basically, everything works fine. However the make file matlab generates limits to creating static libraries. My new question is: how can I build dynamically loaded libraries, i.e. how can I build shared objects?
devin
Maybe this will help: http://www.adp-gmbh.ch/cpp/gcc/create_lib.html
Amro