Why can't I create a deployable archive (.ctf) with code containing enumerations in R2015a
4 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Jorik
2015-4-15
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 个)
shwetha gn
2020-2-3
编辑:Walter Roberson
2020-2-3
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 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 C Shared Library Integration 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!