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?

 채택된 답변

Jan
Jan 2017년 5월 18일

1 개 추천

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

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?

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Nicole Poltorak
Nicole Poltorak 2017년 5월 18일

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];

카테고리

도움말 센터File Exchange에서 Measurements and Spatial Audio에 대해 자세히 알아보기

질문:

2017년 5월 18일

답변:

2017년 5월 18일

Community Treasure Hunt

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

Start Hunting!

Translated by