Problems with compiling DLL (deploy tool)

Hi, I'm trying to compile a DLL using Matlab Deploytool, but everytime it occours the same error: Error: An error occurred while shelling out to mbuild (error code = 9). Which type of error is it? How can I fix it? Did Deploytool not accept any specific code structure ?
Thanks so much
Sofia

9 Comments

Please post the full build log.
Of cours!!
ant:
<mkdir dir="D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\Untitled1\distrib" />
<mkdir dir="D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\Untitled1\src" />
mcc -W 'com:Untitled1,Main,1.0' -T link:lib -d 'D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\Untitled1\src' -w enable:specified_file_mismatch -w enable:repeated_file -w enable:switch_ignored -w enable:missing_lib_sentinel -w enable:demo_license -v 'class{Main:D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\simulazione_forno_riscaldo.m}' 'class{others:D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\chiamata_billetta.m,D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\forno_riscaldo.m,D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\objfun.m,D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\petri_net.m,D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\stima_coeff_globale_scambio.m,D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\tracking_billetta.m}' -a 'D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\esempio1.mat'
Compiler version: 4.17 (R2012a)
Processing C:\Program Files\MATLAB\R2012a\toolbox\matlab\mcc.enc
Processing include files...
2 item(s) added.
Processing directories installed with MCR...
The file D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\Untitled1\src\mccExcludedFiles.log contains a list of functions excluded from the CTF archive.
1 item(s) added.
Generating MATLAB path for the compiled application...
Created 41 path items.
Begin validation of MEX files: Thu Dec 12 10:10:20 2013
End validation of MEX files: Thu Dec 12 10:10:20 2013
Warning: Adding path "D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su
billetta - Movicon_prove" to Compiler path instance.
Warning: Adding path "D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su
billetta - Movicon_prove" to Compiler path instance.
Warning: Duplicate directory name: D:\IPROCESS\Acciaieria Beltrame\_mat_m -
rev3 - SdS su billetta - Movicon_prove.
Warning: Adding path "D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su
billetta - Movicon_prove" to Compiler path instance.
Warning: Duplicate directory name: D:\IPROCESS\Acciaieria Beltrame\_mat_m -
rev3 - SdS su billetta - Movicon_prove.
Warning: Adding path "D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su
billetta - Movicon_prove" to Compiler path instance.
Warning: Duplicate directory name: D:\IPROCESS\Acciaieria Beltrame\_mat_m -
rev3 - SdS su billetta - Movicon_prove.
Warning: Adding path "D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su
billetta - Movicon_prove" to Compiler path instance.
Warning: Duplicate directory name: D:\IPROCESS\Acciaieria Beltrame\_mat_m -
rev3 - SdS su billetta - Movicon_prove.
Warning: Adding path "D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su
billetta - Movicon_prove" to Compiler path instance.
Warning: Duplicate directory name: D:\IPROCESS\Acciaieria Beltrame\_mat_m -
rev3 - SdS su billetta - Movicon_prove.
Warning: Adding path "D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su
billetta - Movicon_prove" to Compiler path instance.
Warning: Duplicate directory name: D:\IPROCESS\Acciaieria Beltrame\_mat_m -
rev3 - SdS su billetta - Movicon_prove.
Parsing file "D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\simulazione_forno_riscaldo.m"
    (Referenced from: "Compiler Command Line").
Parsing file "D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\chiamata_billetta.m"
    (Referenced from: "Compiler Command Line").
Parsing file "D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\forno_riscaldo.m"
    (Referenced from: "Compiler Command Line").
Parsing file "D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\objfun.m"
    (Referenced from: "Compiler Command Line").
Parsing file "D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\petri_net.m"
    (Referenced from: "Compiler Command Line").
Parsing file "D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\stima_coeff_globale_scambio.m"
    (Referenced from: "Compiler Command Line").
Parsing file "D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\tracking_billetta.m"
    (Referenced from: "Compiler Command Line").
Parsing file "C:\Program Files\MATLAB\R2012a\toolbox\compiler\deploy\deployprint.m"
    (Referenced from: "Compiler Command Line").
Parsing file "C:\Program Files\MATLAB\R2012a\toolbox\compiler\deploy\printdlg.m"
    (Referenced from: "Compiler Command Line").
Deleting 0 temporary MEX authorization files.
Generating file "D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\Untitled1\src\Untitled1_idl.idl".
Generating file "D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\Untitled1\src\Main_com.hpp".
Generating file "D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\Untitled1\src\others_com.hpp".
Generating file "D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\Untitled1\src\Main_com.cpp".
Generating file "D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\Untitled1\src\others_com.cpp".
Generating file "D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\Untitled1\src\Untitled1_dll.cpp".
Generating file "D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\Untitled1\src\Untitled1.def".
Generating file "D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\Untitled1\src\Untitled1.rc".
Generating file "D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\Untitled1\src\readme.txt".
Executing command: ""C:\Program Files\MATLAB\R2012a\bin\mbuild" -O -v -output "Untitled1_1_0" -I"D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\Untitled1\src" "mwcomtypes.idl" "D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\Untitled1\src\Untitled1_idl.idl" "mwcomtypes.idl" "mwcomtypes.idl" "mwcomtypes.idl" "mclcommain.lib" "D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\Untitled1\src\Main_com.cpp" "D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\Untitled1\src\others_com.cpp" "mwcomtypes.idl" "D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\Untitled1\src\Untitled1_dll.cpp" "mwcomtypes.idl" "D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\Untitled1\src\Untitled1.def" "mwcomtypes.idl" "D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\Untitled1\src\Untitled1.rc" -link dll -outdir "D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\Untitled1\src" -regsvr"-> Default options filename found in C:\Users\Sofy\AppData\Roaming\MathWorks\MATLAB\R2012a
----------------------------------------------------------------
-> Options file = C:\Users\Sofy\AppData\Roaming\MathWorks\MATLAB\R2012a\compopts.bat
-> COMPILER = cl
-> Compiler flags:
COMPFLAGS = -MD -c -Zp8 -GR -W3 -EHsc- -Zc:wchar_t- -nologo -I"C:\PROGRA~1\MATLAB\R2012a\extern\include\win64" -DMSVC -DIBMPC /D_SECURE_SCL=0 /D_CRT_SECURE_NO_DEPRECATE
OPTIMFLAGS = -O2 -DNDEBUG
DEBUGFLAGS = -Z7
arguments = -I"D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\Untitled1\src"
Name switch = /Fo
-> Pre-linking commands =
-> LINKER = link
-> Link directives:
LINKFLAGS = /MACHINE:AMD64 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /LIBPATH:"C:\PROGRA~1\MATLAB\R2012a\extern\lib\win64\microsoft" /nologo /manifest /manifestfile:"D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\Untitled1\src\Untitled1_1_0.msvc.manifest" mclmcrrt.lib /dll /implib:"D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\Untitled1\src\Untitled1_1_0.lib" /def:"D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\Untitled1\src\Untitled1.def"
LINKFLAGSPOST =
Name directive = /out:"D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\Untitled1\src\Untitled1_1_0.dll"
File link directive =
Lib. link directive =
Rsp file indicator = @
-> Resource Compiler = rc /fo "D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\Untitled1\src\Untitled1.res"
-> Resource Linker =
----------------------------------------------------------------
--> copy C:\PROGRA~1\MATLAB\R2012a\extern\include\win64\mwcomutil.tlb .
1 file copiati.
--> midl /nologo /win64 /I "C:\PROGRA~1\MATLAB\R2012a\extern\include" /D "NDEBUG" /out "D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\Untitled1\src" "mwcomtypes.idl"
mwcomtypes.idl
oaidl.idl
objidl.idl
unknwn.idl
wtypes.idl
basetsd.h
guiddef.h
ocidl.idl
oleidl.idl
servprov.idl
urlmon.idl
msxml.idl
oaidl.acf
ocidl.acf
64 bit Processing C:\PROGRA~1\MATLAB\R2012a\extern\include\mwcomtypes.idl
64 bit Processing C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\oaidl.idl
64 bit Processing C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\objidl.idl
64 bit Processing C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\unknwn.idl
64 bit Processing C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\wtypes.idl
64 bit Processing C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\basetsd.h
64 bit Processing C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\guiddef.h
64 bit Processing C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\ocidl.idl
64 bit Processing C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\oleidl.idl
64 bit Processing C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\servprov.idl
64 bit Processing C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\urlmon.idl
64 bit Processing C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\msxml.idl
64 bit Processing C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\oaidl.acf
64 bit Processing C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\ocidl.acf
--> midl /nologo /win64 /I "C:\PROGRA~1\MATLAB\R2012a\extern\include" /D "NDEBUG" /out "D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\Untitled1\src" "D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\Untitled1\src\Untitled1_idl.idl"
Untitled1_idl.idl
oaidl.idl
objidl.idl
unknwn.idl
wtypes.idl
basetsd.h
guiddef.h
ocidl.idl
oleidl.idl
servprov.idl
urlmon.idl
msxml.idl
mwcomtypes.idl
oaidl.acf
ocidl.acf
64 bit Processing D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\Untitled1\src\Untitled1_idl.idl
64 bit Processing C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\oaidl.idl
64 bit Processing C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\objidl.idl
64 bit Processing C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\unknwn.idl
64 bit Processing C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\wtypes.idl
64 bit Processing C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\basetsd.h
64 bit Processing C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\guiddef.h
64 bit Processing C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\ocidl.idl
64 bit Processing C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\oleidl.idl
64 bit Processing C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\servprov.idl
64 bit Processing C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\urlmon.idl
64 bit Processing C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\msxml.idl
64 bit Processing C:\PROGRA~1\MATLAB\R2012a\extern\include\mwcomtypes.idl
64 bit Processing C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\oaidl.acf
64 bit Processing C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\ocidl.acf
midl\oleaut32.dll : error MIDL2020 : error generating type library : SetFuncAndParamNames failed : get_t (0x8002802C)
C:\PROGRA~1\MATLAB\R2012A\BIN\MEX.PL: Error: IDL compile of 'D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\Untitled1\src\Untitled1_idl.idl' failed.
Error: An error occurred while shelling out to mbuild (error code = 9).
Unable to build executable.
So the actual error is:
" error MIDL2020 : error generating type library : SetFuncAndParamNames failed : get_t (0x8002802C)"
Can you compile a simple hello world example or does that also result in the same error?
I tried it now, the build finished with no error...another thing, if I compile the DLL as COM object, build failed, but if I compile the same DLL as .NET object, build finished with no error...
Can you try running MATLAB as administrator and try again building the COM DLL?
MATLAB is just running as administrator...There might be an error in the code?Project consists of 7 mfiles, and I use 11 global variables..
It could be that the intermediate code which is generated is wrong at some point. The SetFuncAndParamNames function takes care of setting the function name and parameters. So it seems like the get_t function (which is most likely generated automatically) is not correct. Is the intermediate code preserved (should be in the src subfolder)?If so, can you share the generated code?
The src subfolder is empty...
So we need to block the files to prevent getting them deleted by MATLAB. In such a case I do this:
files_opened = {};
folder = 'D:\IPROCESS\Acciaieria Beltrame\_mat_m - rev3 - SdS su billetta - Movicon_prove\Untitled1\src\';
while 1
files = dir(folder);
for i=1:numel(files)
if ~files(i).isdir && ~ismember(files(i).name,files_opened)
fopen(fullfile(folder,files(i).name),'r');
files_opened{end+1} = files(i).name;
end
end
end
%later after error press CTRL+C and run a fclose('all')
This should prevent that all generated files get deleted after the error.
So start compiling, then run that above code immediatly after you started the compilation process and wait for the build process to error out.

Sign in to comment.

Answers (0)

Categories

Asked:

on 12 Dec 2013

Edited:

on 12 Dec 2013

Community Treasure Hunt

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

Start Hunting!