Using mcc to compile a code that uses a .dll library
显示 更早的评论
Hi,
I created a program in matlab with a GUI. I want to compile it to have an EXE. In the code, I use an external library, but I only have the files: foo.dll foo.h foo.lib.
In the matlab code I call: loadlibrary ('\foo', '\foo.h');
Later, I call some functions of those libraries, using: calllib('foo', 'Function', param);
I compile it using: mcc -m mycode.m -c
The compiler returns no errors, and a "mycode.exe" file is created. However, when I execute I get:
Error using loadlibrary (line 239) Deployed applications must use a prototype file instead of a header file. To create the prototype, use the loadlibrary mfilename option. Use the prototype file in compiled code. See http://www.mathworks.com/access/helpdesk/help/toolbox/compiler/brb8oui.html for more information.
Error in mycode>mycode_OpeningFcn (line 66)
Error in gui_mainfcn (line 221)
Error in mycode (line 42)
Do you have any tip on how I can overcome this?
Thank you.
采纳的回答
更多回答(2 个)
Nuno Almeida
2012-3-13
0 个投票
2 个评论
Kaustubha Govind
2012-3-13
You need to manually add the file ADCacquire.m to the CTF archive of the compiled application. You can do this with the -a option (if using the mcc command) or drag it under "Other/Additional Files" if using deploytool. Normally, the MATLAB Compiler analyzes your code and automatically locates all the MATLAB files called from your code, but your call to mexCallMATLAB is probably opaque to MATLAB Compiler.
Nuno Almeida
2012-3-13
类别
在 帮助中心 和 File Exchange 中查找有关 Standalone Applications 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!