Trying to get matlab mex file to work
11 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Stagleton
il 15 Nov 2011
Risposto: CHUANQIANG ZHANG
il 12 Mag 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 Commenti
Kaustubha Govind
il 15 Nov 2011
Also, do you have write permissions to your directory? Try running the mex command after starting MATLAB "as administrator".
Risposta accettata
Friedrich
il 15 Nov 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 Commenti
Kaustubha Govind
il 15 Nov 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.
Più risposte (3)
Eduardo
il 31 Mag 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 Commenti
Friedrich
il 3 Giu 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
il 4 Dic 2013
You need to run windows update VS10sp1-KB983509. the problem will be solve
CHUANQIANG ZHANG
il 12 Mag 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!
![捕获.JPG](https://www.mathworks.com/matlabcentral/answers/uploaded_files/219055/%E6%8D%95%E8%8E%B7.jpeg)
0 Commenti
Vedere anche
Categorie
Scopri di più su Write C Functions Callable from MATLAB (MEX Files) in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!