Trying to get matlab mex file to work
9 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Stagleton
el 15 de Nov. de 2011
Respondida: CHUANQIANG ZHANG
el 12 de Mayo de 2019
I've been trying to run a c file in matlab with mex function. I have been getting this same error that's below. I cannot edit the names of the directory files because I do not have admin access. Everything was created automatically. I downloaded VS2010e as the compiler.
>> mex -v -g mexcallmatlab.c
-> Default options filename found in C:\Users\gsea\AppData\Roaming\MathWorks\MATLAB\R2010b
----------------------------------------------------------------
-> Options file = C:\Users\gsea\AppData\Roaming\MathWorks\MATLAB\R2010b\mexopts.bat
MATLAB = C:\Program Files (x86)\MATLAB\R2010b
-> COMPILER = cl
-> Compiler flags:
COMPFLAGS = /c /Zp8 /GR /W3 /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMATLAB_MEX_FILE /nologo /MD
OPTIMFLAGS = /O2 /Oy- /DNDEBUG
DEBUGFLAGS = /Z7
arguments =
Name switch = /Fo
-> Pre-linking commands =
-> LINKER = link
-> Link directives:
LINKFLAGS = /dll /export:mexFunction /LIBPATH:"C:\Program Files (x86)\MATLAB\R2010b\extern\lib\win64\microsoft" libmx.lib libmex.lib libmat.lib /MACHINE:X64 -lkernel32 user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /manifest /incremental:NO /implib:"C:\Users\gsea\AppData\Local\Temp\mex_Xt7aAg\templib.x" /MAP:"mexcallmatlab.mexw64.map"
LINKDEBUGFLAGS = /debug /PDB:"mexcallmatlab.mexw64.pdb"
LINKFLAGSPOST =
Name directive = /out:"mexcallmatlab.mexw64"
File link directive =
Lib. link directive =
Rsp file indicator = @
-> Resource Compiler = rc /fo "mexversion.res"
-> Resource Linker =
----------------------------------------------------------------
--> cl /c /Zp8 /GR /W3 /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMATLAB_MEX_FILE /nologo /MD /FoC:\Users\gsea\AppData\Local\Temp\mex_Xt7aAg\mexcallmatlab.obj -I"C:\Program Files (x86)\MATLAB\R2010b"\extern\include /Z7 -DMX_COMPAT_32 mexcallmatlab.c
mexcallmatlab.c
Contents of C:\Users\gsea\AppData\Local\Temp\mex_Xt7aAg\mex_tmp.rsp:
C:\Users\gsea\AppData\Local\Temp\mex_Xt7aAg\mexcallmatlab.obj
--> link /out:"mexcallmatlab.mexw64" /debug /PDB:"mexcallmatlab.mexw64.pdb" /dll /export:mexFunction /LIBPATH:"C:\Program Files (x86)\MATLAB\R2010b\extern\lib\win64\microsoft" libmx.lib libmex.lib libmat.lib /MACHINE:X64 -lkernel32 user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /manifest /incremental:NO /implib:"C:\Users\gsea\AppData\Local\Temp\mex_Xt7aAg\templib.x" /MAP:"mexcallmatlab.mexw64.map" @C:\Users\gsea\AppData\Local\Temp\mex_Xt7aAg\mex_tmp.rsp
LINK : warning LNK4044: unrecognized option '/lkernel32'; ignored
LINK : fatal error LNK1104: cannot open file 'mexcallmatlab.mexw64'
C:\PROGRA~2\MATLAB\R2010B\BIN\MEX.PL: Error: Link of 'mexcallmatlab.mexw64' failed.
??? Error using ==> mex at 208
Unable to complete successfully.
>>
4 comentarios
Kaustubha Govind
el 15 de Nov. de 2011
Also, do you have write permissions to your directory? Try running the mex command after starting MATLAB "as administrator".
Respuesta aceptada
Friedrich
el 15 de Nov. de 2011
Hi,
seems like you are trying to compile the example file in the directory where it comes with MATLAB. Under Windows 7 or Vista the UAC blocks write access to the C:\Program Files\... folders, which results in such an error. Try to copy that file to a folder where you have write access and compile it in there.
2 comentarios
Kaustubha Govind
el 15 de Nov. de 2011
In addition, I am also uncomfortable with the use of the name "mexcallmatlab" - I would recommend using a different name because this clashes with the name of the MEX-API function mexCallMATLAB.
Más respuestas (3)
Eduardo
el 31 de Mayo de 2013
Hi, I am using Visual Studio with matlab and I get the same error as your when I try to compile something with the mex command:
Please how did you solve it??
LINK : fatal error LNK1181: cannot open input file 'kernel32.lib'
C:\PROGRA~1\MATLAB\R2011A\BIN\MEX.PL: Error: Link of 'field_extract.mexw64' failed.
??? Error using ==> mex at 208 Unable to complete successfully.
2 comentarios
Friedrich
el 3 de Jun. de 2013
Most likely a bittedness missmatch. Make sure you configured the project to be a 64bit project. Otherwise the 32bit compiler tries to open the 64bit kernel32.lib which results in the error you get.
moataz hassan
el 4 de Dic. de 2013
You need to run windows update VS10sp1-KB983509. the problem will be solve
CHUANQIANG ZHANG
el 12 de Mayo de 2019
I had similar problem. I was running MATLAB 2019a under windows 10.
To solve the problem, please try to run with Windows 7 compatible mode, and admin.
See attached picture. Good luck!
0 comentarios
Ver también
Categorías
Más información sobre Write C Functions Callable from MATLAB (MEX Files) en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!