Compiling standalone from pure source code using deploytool

2 vues (au cours des 30 derniers jours)
Matt J
Matt J le 21 Juil 2014
Commenté : Robert Cumming le 23 Juil 2014
I have MATLAB Compiler .prj project consisting of various .m, .c, and .cpp files. The .c and .cpp are each individual mex routine source code files. I'm trying to find a way to run a build within the deploytool GUI so that it will first convert all the .c and .cpp files to mex files, as if I had applied the mex() command to each of these files individually, and then build the total project incorporating the mex files along with the .m files.
Currently, I find that the only way to build the project is to replace each of the .c and .cpp files in the project with its mexed version (which I have to obtain by manually running mex on each one) before running the build. If I attempt to run a build naively on pure source code, compile errors result.
Is there any way to automate the build process so that the final standalone .exe can start with pure source code? It is painful to have to mex C/C++ files individually if I have many such files. Painful both to me and to future generations after me who might need to recompile this code.

Réponse acceptée

Robert Cumming
Robert Cumming le 22 Juil 2014
The way I do it is to create a project (in deploytool GUI) which will contain all the files you need (i.e. include the mex files) and save this project.
Then create a build function which has the following type of format:
function buildMyProject
mex command
mex command
etc...
% then call the deploytool from the commanline
deploytool -package youProject.prj
You may use -build instead of -package depending on version and your exe etc....
  2 commentaires
Matt J
Matt J le 22 Juil 2014
Modifié(e) : Matt J le 22 Juil 2014
Thanks, Robert. That looks like exactly what I need.
I'm still curious, however, why building the project without pre-mexing the .c and .cpp files leads to compilation errors? Do you happen to know what compilation steps deploytool applies when given just the collection of .c and .cpp files that is different from pre-mexing?
Robert Cumming
Robert Cumming le 23 Juil 2014
I dont know for sure - but I suspect its to do with the deploytool not assuming the mex command for each .c and .cpp - as your mex compilation could be more complex.
I've always done it the way I described above (i.e. make the mex first).

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur MATLAB Compiler dans Help Center et File Exchange

Produits

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by