How to run resize.cc on Linux?

Hi, I am doing face recognition with ZR model(https://www.ics.uci.edu/~xzhu/face/). Everything works fine in Windows but in Linux I get an error in resize.cc file:
Error using mex
resize.cc: In function ?mxArray* resize(const mxArray*,
const mxArray*)?:
resize.cc:89:43: error: cannot convert ?const size_t* {aka const long unsigned int*}? to ?const int*? in initialization
const int *sdims = mxGetDimensions(mxsrc);
^
resize.cc:102:73: error: cannot convert ?int*? to ?const size_t* {aka const long unsigned int*}? for argument ?2? to ?mxArray* mxCreateNumericArray(size_t, const size_t*, mxClassID,
mxComplexity)?
mxArray *mxdst = mxCreateNumericArray(3, ddims, mxDOUBLE_CLASS, mxREAL);
What is the reason? How can I fix it?

 Accepted Answer

The solution might follow exactly the error message: define sdims and ddims as size_t:
const size_t *sdims = mxGetDimensions(mxsrc);
size_t *ddims;

1 Comment

Thanks for the answer. I changed that in other two mex files too and it compiled without errors. However, now, anytime my face detector script uses mex files, matlab crashes. Here's the report:
Configuration:
Crash Decoding : Disabled - No sandbox or build area path
Crash Mode : continue (default)
Current Graphics Driver: Brian Paul Mesa X11 Version 2.1 Mesa 10.5.2
Current Visual : 0x21 (class 4, depth 24)
Default Encoding : UTF-8
Deployed : false
GNU C Library : 2.19 stable
Host Name : ComsolProliant
MATLAB Architecture : glnxa64
MATLAB Entitlement ID: 2128349
MATLAB Root : /usr/local/MATLAB/R2017a
MATLAB Version : 9.2.0.556344 (R2017a)
OpenGL : software
Operating System : Linux 4.4.0-63-generic #84~14.04.2-Ubuntu SMP Mon Feb 13 11:04:58 UTC 2017 x86_64
Processor ID : x86 Family 6 Model 63 Stepping 2, GenuineIntel
Virtual Machine : Java 1.7.0_60-b19 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode
Window System : Cendio ThinLinc (11400000), display :1
Fault Count: 1
Abnormal termination:
Segmentation violation
Register State (from fault):
RAX = 0000000000000001 RBX = 0000000000000000
RCX = 0000000000000018 RDX = 00007f4aebb458d8
RSP = 00007f4aebb45810 RBP = 00007f4aebb45860
RSI = 0000000000000003 RDI = 0000ffffffffffff
R8 = 00007f4aebb45968 R9 = 00007f4aebb459c8
R10 = 00007f4aebb45840 R11 = 00007f4b0927d850
R12 = 00007f4aebb458d8 R13 = 0000000000000003
R14 = 00007f4aebb458d8 R15 = 0000000000000000
RIP = 00007f4b092be160 EFL = 0000000000010297
CS = 0033 FS = 0000 GS = 0000
Stack Trace (from fault):
[ 0] 0x00007f4b092be160 bin/glnxa64/libmx.so+00659808
[ 1] 0x00007f4b092be5a3 bin/glnxa64/libmx.so+00660899
[ 2] 0x00007f4b092be9a5 bin/glnxa64/libmx.so+00661925 _ZN6matrix6detail10noninlined12mx_array_api10mxCheckDimEPKmm9mxClassID12mxComplexity+00000085
[ 3] 0x00007f4b092be9d1 bin/glnxa64/libmx.so+00661969 _ZN6matrix6detail10noninlined12mx_array_api18mxCheckDim_nothrowEPKmm9mxClassID12mxComplexityPm+00000017
[ 4] 0x00007f4b092864e2 bin/glnxa64/libmx.so+00431330
[ 5] 0x00007f4b09289180 bin/glnxa64/libmx.so+00442752 _ZN6matrix6detail14create_numericEmPKm9mxClassID12mxComplexityiPPK11mxArray_tag+00000064
[ 6] 0x00007f4b0928932e bin/glnxa64/libmx.so+00443182 _ZN6matrix6detail10noninlined12mx_array_api20mxCreateNumericArrayEmPKm9mxClassID12mxComplexity+00000094
[ 7] 0x00007f49229e1f2f /home/nipol14/Desktop/camera_training/SFEW_module1_ZR_FaceDetector/resize.mexa64+00003887
[ 8] 0x00007f49229e1fea /home/nipol14/Desktop/camera_training/SFEW_module1_ZR_FaceDetector/resize.mexa64+00004074 mexFunction+00000069
[ 9] 0x00007f4afe4dc6a7 bin/glnxa64/libmex.so+00186023 mexRunMexFile+00000439
[ 10] 0x00007f4afe4d44a3 bin/glnxa64/libmex.so+00152739
[ 11] 0x00007f4afe4d5295 bin/glnxa64/libmex.so+00156309
[ 12] 0x00007f4afd7c71f3 bin/glnxa64/libmwm_dispatcher.so+00782835 _ZN8Mfh_file16dispatch_fh_implEMS_FviPP11mxArray_tagiS2_EiS2_iS2_+00000947
[ 13] 0x00007f4afd7c7abe bin/glnxa64/libmwm_dispatcher.so+00785086 _ZN8Mfh_file11dispatch_fhEiPP11mxArray_tagiS2_+00000030
[ 14] 0x00007f4af9aec4a0 bin/glnxa64/libmwm_lxe.so+11719840
[ 15] 0x00007f4af9aeca2b bin/glnxa64/libmwm_lxe.so+11721259
[ 16] 0x00007f4af9b56961 bin/glnxa64/libmwm_lxe.so+12155233
[ 17] 0x00007f4af946ca00 bin/glnxa64/libmwm_lxe.so+04905472
[ 18] 0x00007f4af946ec84 bin/glnxa64/libmwm_lxe.so+04914308
[ 19] 0x00007f4af946b224 bin/glnxa64/libmwm_lxe.so+04899364
[ 20] 0x00007f4af9466b21 bin/glnxa64/libmwm_lxe.so+04881185
[ 21] 0x00007f4af9466fb9 bin/glnxa64/libmwm_lxe.so+04882361
[ 22] 0x00007f4af946aa10 bin/glnxa64/libmwm_lxe.so+04897296
[ 23] 0x00007f4af946aadf bin/glnxa64/libmwm_lxe.so+04897503
[ 24] 0x00007f4af9564a1c bin/glnxa64/libmwm_lxe.so+05921308
[ 25] 0x00007f4af9569083 bin/glnxa64/libmwm_lxe.so+05939331
[ 26] 0x00007f4af99ebb0e bin/glnxa64/libmwm_lxe.so+10668814
[ 27] 0x00007f4af9ade0ce bin/glnxa64/libmwm_lxe.so+11661518
[ 28] 0x00007f4afd7c71f3 bin/glnxa64/libmwm_dispatcher.so+00782835 _ZN8Mfh_file16dispatch_fh_implEMS_FviPP11mxArray_tagiS2_EiS2_iS2_+00000947
[ 29] 0x00007f4afd7c7abe bin/glnxa64/libmwm_dispatcher.so+00785086 _ZN8Mfh_file11dispatch_fhEiPP11mxArray_tagiS2_+00000030
[ 30] 0x00007f4af9aec4a0 bin/glnxa64/libmwm_lxe.so+11719840
[ 31] 0x00007f4af9aeca2b bin/glnxa64/libmwm_lxe.so+11721259
[ 32] 0x00007f4af9b569b1 bin/glnxa64/libmwm_lxe.so+12155313
[ 33] 0x00007f4af946ca00 bin/glnxa64/libmwm_lxe.so+04905472
[ 34] 0x00007f4af946ec84 bin/glnxa64/libmwm_lxe.so+04914308
[ 35] 0x00007f4af946b224 bin/glnxa64/libmwm_lxe.so+04899364
[ 36] 0x00007f4af9466b21 bin/glnxa64/libmwm_lxe.so+04881185
[ 37] 0x00007f4af9466fb9 bin/glnxa64/libmwm_lxe.so+04882361
[ 38] 0x00007f4af946aa10 bin/glnxa64/libmwm_lxe.so+04897296
[ 39] 0x00007f4af946aadf bin/glnxa64/libmwm_lxe.so+04897503
[ 40] 0x00007f4af9564a1c bin/glnxa64/libmwm_lxe.so+05921308
[ 41] 0x00007f4af9569083 bin/glnxa64/libmwm_lxe.so+05939331
[ 42] 0x00007f4af99ebb0e bin/glnxa64/libmwm_lxe.so+10668814
[ 43] 0x00007f4af99b7dd4 bin/glnxa64/libmwm_lxe.so+10456532
[ 44] 0x00007f4af99b814a bin/glnxa64/libmwm_lxe.so+10457418
[ 45] 0x00007f4af99b9919 bin/glnxa64/libmwm_lxe.so+10463513
[ 46] 0x00007f4af9a2e2be bin/glnxa64/libmwm_lxe.so+10941118
[ 47] 0x00007f4af9a2e64a bin/glnxa64/libmwm_lxe.so+10942026
[ 48] 0x00007f4afbb8f41b bin/glnxa64/libmwbridge.so+00189467
[ 49] 0x00007f4afbb900cd bin/glnxa64/libmwbridge.so+00192717 _Z8mnParserv+00000829
[ 50] 0x00007f4afda8ddf3 bin/glnxa64/libmwmcr.so+00552435
[ 51] 0x00007f4afda8ff9e bin/glnxa64/libmwmcr.so+00561054
[ 52] 0x00007f4afda90619 bin/glnxa64/libmwmcr.so+00562713 _ZN5boost6detail17task_shared_stateINS_3_bi6bind_tIvPFvRKNS_8functionIFvvEEEENS2_5list1INS2_5valueIS6_EEEEEEvE6do_runEv+00000025
[ 53] 0x00007f4afda8ef06 bin/glnxa64/libmwmcr.so+00556806
[ 54] 0x00007f4afe25c739 bin/glnxa64/libmwiqm.so+00857913
[ 55] 0x00007f4afe24906c bin/glnxa64/libmwiqm.so+00778348 _ZN5boost6detail8function21function_obj_invoker0ISt8functionIFNS_3anyEvEES4_E6invokeERNS1_15function_bufferE+00000028
[ 56] 0x00007f4afe248d4c bin/glnxa64/libmwiqm.so+00777548 _ZN3iqm18PackagedTaskPlugin7executeEP15inWorkSpace_tagRN5boost10shared_ptrIN14cmddistributor17IIPCompletedEventEEE+00000428
[ 57] 0x00007f4afe226fba bin/glnxa64/libmwiqm.so+00638906
[ 58] 0x00007f4afe21515f bin/glnxa64/libmwiqm.so+00565599
[ 59] 0x00007f4afe217609 bin/glnxa64/libmwiqm.so+00574985
[ 60] 0x00007f4b0efb901a bin/glnxa64/libmwservices.so+02469914
[ 61] 0x00007f4b0efba5cf bin/glnxa64/libmwservices.so+02475471
[ 62] 0x00007f4b0efbad7a bin/glnxa64/libmwservices.so+02477434 _Z25svWS_ProcessPendingEventsiib+00000186
[ 63] 0x00007f4afda8e56e bin/glnxa64/libmwmcr.so+00554350
[ 64] 0x00007f4afda8e901 bin/glnxa64/libmwmcr.so+00555265
[ 65] 0x00007f4afda7c206 bin/glnxa64/libmwmcr.so+00479750
[ 66] 0x00007f4b0d8eb184 /lib/x86_64-linux-gnu/libpthread.so.0+00033156
[ 67] 0x00007f4b0d618bed /lib/x86_64-linux-gnu/libc.so.6+01039341 clone+00000109
[ 68] 0x0000000000000000 <unknown-module>+00000000
This error was detected while a MEX-file was running. If the MEX-file
is not an official MathWorks function, please examine its source code
for errors. Please consult the External Interfaces Guide for information
on debugging MEX-files.
Why are these mex files not working on Linux?

Sign in to comment.

More Answers (1)

I managed to solve it with your advice! Thanks!
I used a modified version of your code:
const long unsigned int *sdims = mxGetDimensions(mxsrc);
long unsigned int ddims[3];

Categories

Find more on Measurements and Spatial Audio in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!