Why can't I create a deployable archive (.ctf) with code containing enumerations in R2015a
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Barry Carnahan
le 13 Avr 2015
Modifié(e) : Walter Roberson
le 3 Fév 2020
We want to upgrade our MatLab Production Server from 2013b to 2015a. When I try to create a Deployable archive of our software with the 2015a compiler I get an "Invalid file types" error after selecting the .m files in the EXPORTED FUNCTIONS dialog. We also get the message "Only MATLAB functions and MEX Files with a single entry point are acceptable as exported functions.", then a list of the four enumeration files are listed beneath. If I exempt the enumeration .m files in the EXPORTED FUNCTIONS dialog then I get no errors. The same code compiles with no problems under the 2013b compiler. We do have both MatLab 2013b and MatLab 2015a desktop versions with compiler installed on the same computer with only the 2015a running, both installed to their default locations on the C drive. I've done a lot of Googling about this problem but come up empty handed. Hope someone can help with this problem.
0 commentaires
Réponse acceptée
Jorik
le 15 Avr 2015
Enumeration and class definition files are not MATLAB function files and as such cannot be used as one of the exported functions for a MATLAB Compiler (SDK) project. In most cases the dependency analysis of MATLAB can automatically detect which enumeration and class definitions are necessary for your project.
If the dependency analysis is unable to find some required files, you can manually add these files in the "Files required for your archive to run" section.
There can indeed be some changes in how file types and dependencies are recognized between R2013b and R2015a. This is a result of the new dependency analysis function was introduced in R2014a: http://www.mathworks.com/help/compiler/release-notes.html
1 commentaire
Plus de réponses (1)
shwetha gn
le 3 Fév 2020
Modifié(e) : Walter Roberson
le 3 Fév 2020
make your code as a function
Try the following syntax:
function output1 = Your_function_name() % just preced your code with this statement with an appropriate function name
% Your code
end
For example:
function output1 = addn()
a=1;
b=2;
output1=a+b;
end
then in command window type
deploytool
select library compiler
if it is a dot net application select .Net Assembly then click on + symbol to include the .m function, then finally click on package
to build the dll file.
0 commentaires
Voir également
Catégories
En savoir plus sur C Shared Library Integration 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!