High-quality-ellipse-detection icon indicating copy to clipboard operation
High-quality-ellipse-detection copied to clipboard

problem mexing the file

Open Lorra233 opened this issue 6 years ago • 4 comments

When I try to compile the file "generateEllipseCandidates.cpp" in MATLAB , a problem occurs as follow:

mex G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp -IG:\software\opencv\build\include -IG:\software\opencv\build\include\opencv -IG:\software\opencv\build\include\opencv2 -LG:\software\opencv\build\x64\vc11\lib -I'C:\Program Files\MATLAB\R2017a\extern\include' -L'C:\Program Files\MATLAB\R2017a\extern\lib\win64\microsoft' -lopencv_core249 -lopencv_highgui249 -lopencv_imgproc249 -llibmwlapack.lib (--------report as bellow:) 使用 'MinGW64 Compiler (C++)' 编译。 G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'void rect_copy(rect*, rect*)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:223:76: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( in == NULL || out == NULL ) error("rect_copy: invalid 'in' or 'out'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'double inter_low(double, double, double, double, double)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:255:70: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("inter_low: unsuitable input, 'x1>x2' or 'x<x1' or 'x>x2'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'double inter_hi(double, double, double, double, double)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:277:69: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("inter_hi: unsuitable input, 'x1>x2' or 'x<x1' or 'x>x2'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'void ri_del(rect_iter*)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:290:52: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( iter == NULL ) error("ri_del: NULL iterator."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'int ri_end(rect_iter*)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:302:49: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( i == NULL ) error("ri_end: NULL iterator."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'void ri_inc(rect_iter*)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:318:49: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( i == NULL ) error("ri_inc: NULL iterator."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'rect_iter* ri_ini(rect*)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:392:53: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( r == NULL ) error("ri_ini: invalid rectangle."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:396:53: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( i == NULL ) error("ri_ini: Not enough memory."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'void free_image_double(image_double)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:461:52: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("free_image_double: invalid input image."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'image_double_s* new_image_double(int, int)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:474:79: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( xsize == 0 || ysize == 0 ) error("new_image_double: invalid image size."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:478:49: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( image == NULL ) error("not enough memory."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:480:55: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( image->data == NULL ) error("not enough memory."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'image_double_s* new_image_double_ptr(int, int, double*)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:500:54: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("new_image_double_ptr: invalid image size."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:501:70: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( data == NULL ) error("new_image_double_ptr: NULL data pointer."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:505:49: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( image == NULL ) error("not enough memory."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'void free_ntuple_list(ntuple_list)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:554:53: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("free_ntuple_list: invalid n-tuple input."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'ntuple_list_s* new_ntuple_list(int)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:568:66: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( dim == 0 ) error("new_ntuple_list: 'dim' must be positive."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:572:51: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( n_tuple == NULL ) error("not enough memory."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:581:59: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( n_tuple->values == NULL ) error("not enough memory."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'void enlarge_ntuple_list(ntuple_list)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:593:50: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("enlarge_ntuple_list: invalid n-tuple."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:601:59: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( n_tuple->values == NULL ) error("not enough memory."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'void add_7tuple(ntuple_list, double, double, double, double, double, double, double)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:611:63: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( out == NULL ) error("add_7tuple: invalid n-tuple input."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:612:73: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( out->dim != 7 ) error("add_7tuple: the n-tuple must be a 7-tuple."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:616:71: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( out->values == NULL ) error("add_7tuple: invalid n-tuple input."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'void add_8tuple(ntuple_list, double, double, double, double, double, double, double, int)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:637:63: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( out == NULL ) error("add_8tuple: invalid n-tuple input."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:638:73: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( out->dim != 8 ) error("add_8tuple: the n-tuple must be a 8-tuple."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:642:71: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( out->values == NULL ) error("add_8tuple: invalid n-tuple input."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'void free_image_char(image_char)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:677:50: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("free_image_char: invalid input image."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'image_char_s* new_image_char(unsigned int, unsigned int)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:690:77: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( xsize == 0 || ysize == 0 ) error("new_image_char: invalid image size."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:694:49: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( image == NULL ) error("not enough memory."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:697:55: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( image->data == NULL ) error("not enough memory."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'image_char_s* new_image_char_ini(unsigned int, unsigned int, unsigned char)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:719:47: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("new_image_char_ini: invalid image."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'image_int_s* new_image_int(unsigned int, unsigned int)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:750:76: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( xsize == 0 || ysize == 0 ) error("new_image_int: invalid image size."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:754:49: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( image == NULL ) error("not enough memory."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:756:55: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( image->data == NULL ) error("not enough memory."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'void gaussian_kernel(ntuple_list, double, double)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:796:55: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("gaussian_kernel: invalid n-tuple 'kernel'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:797:72: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( sigma <= 0.0 ) error("gaussian_kernel: 'sigma' must be positive."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'image_double_s* gaussian_sampler(image_double, double, double)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:862:45: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("gaussian_sampler: invalid image."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:863:73: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( scale <= 0.0 ) error("gaussian_sampler: 'scale' must be positive."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:865:62: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("gaussian_sampler: 'sigma_scale' must be positive."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:870:78: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("gaussian_sampler: the output image size exceeds the handled size."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'image_double_s* ll_angle(image_double, double, coorlist**, image_double_s**, unsigned int)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1014:37: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("ll_angle: invalid image."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1015:72: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( threshold < 0.0 ) error("ll_angle: 'threshold' must be positive."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1016:66: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( list_p == NULL ) error("ll_angle: NULL point2ier 'list_p'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1018:68: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( modgrad == NULL ) error("ll_angle: NULL point2ier 'modgrad'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1019:65: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( n_bins == 0 ) error("ll_angle: 'n_bins' must be positive."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1040:31: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("not enough memory."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'int isaligned(int, int, image_double, double, double)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1148:47: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("isaligned: invalid image 'angles'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1150:47: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("isaligned: (x,y) out of the image."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1151:63: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( prec < 0.0 ) error("isaligned: 'prec' must be positive."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'double nfa(int, int, double, double)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1317:41: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("nfa: wrong n, k or p values."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'double rect_nfa(rect*, image_double, double)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1406:57: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( rec == NULL ) error("rect_nfa: invalid rectangle."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1407:59: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( angles == NULL ) error("rect_nfa: invalid 'angles'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'double get_theta(point2i*, int, double, double, image_double, double, double)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1493:55: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( reg == NULL ) error("get_theta: invalid region."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1494:59: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( reg_size <= 1 ) error("get_theta: region size <= 1."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1496:42: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("get_theta: invalid 'modgrad'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1497:63: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( prec < 0.0 ) error("get_theta: 'prec' must be positive."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1508:44: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("get_theta: null inertia matrix."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'void region2rect(point2i*, int, image_double, double, double, double, rect*)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1564:57: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( reg == NULL ) error("region2rect: invalid region."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1565:61: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( reg_size <= 1 ) error("region2rect: region size <= 1."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1567:50: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("region2rect: invalid image 'modgrad'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1568:56: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( rec == NULL ) error("region2rect: invalid 'rec'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1589:67: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( sum <= 0.0 ) error("region2rect: weights sum equal to zero."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'void region2rect2(point2i*, int, double, double, double, double, double, rect*)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1666:57: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( reg == NULL ) error("region2rect: invalid region."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1667:61: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( reg_size <= 1 ) error("region2rect: region size <= 1."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1668:56: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( rec == NULL ) error("region2rect: invalid 'rec'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'void region_grow(int, int, image_double, point2i*, int*, double*, image_char, double)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1722:49: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("region_grow: (x,y) out of the image."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1724:49: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("region_grow: invalid image 'angles'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1725:56: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( reg == NULL ) error("region_grow: invalid 'reg'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1726:76: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( reg_size == NULL ) error("region_grow: invalid point2ier 'reg_size'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1727:78: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( reg_angle == NULL ) error("region_grow: invalid point2ier 'reg_angle'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1729:47: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("region_grow: invalid image 'used'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'int reduce_region_radius(point2i*, int*, image_double, double, double, double, rect*, image_char, image_double, double)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1888:75: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( reg == NULL ) error("reduce_region_radius: invalid point2ier 'reg'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1890:64: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("reduce_region_radius: invalid point2ier 'reg_size'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1891:74: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( prec < 0.0 ) error("reduce_region_radius: 'prec' must be positive."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1892:75: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( rec == NULL ) error("reduce_region_radius: invalid point2ier 'rec'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1894:56: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("reduce_region_radius: invalid image 'used'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1896:58: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("reduce_region_radius: invalid image 'angles'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'int refine(point2i*, int*, image_double, double, double, double, rect*, image_char, image_double, double)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1965:61: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( reg == NULL ) error("refine: invalid point2ier 'reg'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1966:71: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( reg_size == NULL ) error("refine: invalid point2ier 'reg_size'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1967:60: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( prec < 0.0 ) error("refine: 'prec' must be positive."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1968:61: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( rec == NULL ) error("refine: invalid point2ier 'rec'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1970:42: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("refine: invalid image 'used'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1972:44: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("refine: invalid image 'angles'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'bool isArcSegment(point2i*, int, rect*, image_double, image_char, image_char, double, double, rect*, rect*)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:2050:4: warning: case label value is less than minimum value for type case OPP_POL : opp_pol_cnt++; break;//统计反极性的pixel数量 ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'double* LineSegmentDetection(int*, double*, int, int, double, double, double, double, double, double, int, int**, int*, int*)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:2197:69: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( img == NULL || X <= 0 || Y <= 0 ) error("invalid image input."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:2198:61: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( scale <= 0.0 ) error("'scale' value must be positive."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:2199:73: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( sigma_scale <= 0.0 ) error("'sigma_scale' value must be positive."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:2200:60: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( quant < 0.0 ) error("'quant' value must be positive."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:2202:57: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("'ang_th' value must be in the range (0,180)."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:2204:59: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("'density_th' value must be in the range [0,1]."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:2205:61: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( n_bins <= 0 ) error("'n_bins' value must be positive."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:2253:47: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( reg == NULL ) error("not enough memory!"); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:2384:69: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( region == NULL ) error("'region' should be a valid image."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:2388:57: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("region image to big to fit in INT sizes."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:2398:50: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("too many detections to fit in an INT."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'void groupLSs(double*, int, int*, int, int, std::vector<std::vector >)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:2570:33: warning: ISO C++ forbids converting a string constant to 'char' [-Wwrite-strings] error("group ls error1"); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:2590:32: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("group ls error2"); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:2651:33: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("group ls error3"); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:2671:32: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("group ls error2"); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'int cluster2DPoints(double*, int, double, double*&, int*)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:2947:45: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("cluster2DPoints, not enough memory"); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'PairGroupList* pairGroupListInit(int)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:3187:49: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("paired groups length less equal than 0"); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:3192:46: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("pairGroupListInit,not enough memory"); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'void freePairGroupList(PairGroupList*)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:3199:44: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("freePairGroupList,invalidate free"); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'void calculateGradient(double*, unsigned int, unsigned int, image_double_s**, image_double_s**)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:3211:35: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("calculateGradient error!"); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'void calculateGradient2(double*, unsigned int, unsigned int, image_double_s**)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:3280:35: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("calculateGradient error!"); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'PairGroupList* getValidInitialEllipseSet(double*, int, std::vector<std::vector >, double, image_double, double, int)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:4560:78: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("getValidInitialEllipseSet, selection of salient ellipses failed!");//这种情况会出现??,跑54.jpg出现该问题 ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'void generateEllipseCandidates(PairGroupList*, double, double*&, int*)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:4706:55: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("generateEllipseCandidates, not enough memory"); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:4722:91: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("generateEllipseCandidates, cluster2DPoints, error in clustering elliptic centers"); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:4761:81: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("generateEllipseCandidates, no XY points near to the clustering center"); ^

错误使用 mex G:\software\opencv\build\x64\vc11\lib/opencv_core249.lib: error adding symbols: File in wrong format collect2.exe: error: ld returned 1 exit status

   Could anyone give me some advice? Thank you so much.

Lorra233 avatar Apr 30 '19 02:04 Lorra233

Please read the instructions carefully and see Issue #1 and #4 which have been solved before.

AlanLuSun avatar Apr 30 '19 14:04 AlanLuSun

The same error message except the last one.

D:\High-quality-ellipse-detection\generateEllipseCandidates.cpp:4761:81: warning: deprecated conversion from string constant to
'char*' [-Wwrite-strings]
    error("generateEllipseCandidates, no XY points near to the clustering center");
                                                                                 ^
D:\High-quality-ellipse-detection\generateEllipseCandidates.cpp: In function 'void mexFunction(int, mxArray**, int, const mxArray**)':
D:\High-quality-ellipse-detection\generateEllipseCandidates.cpp:4915:19: error: '>>' should be '> >' within a nested template argument list
  vector<vector<int>> groups;

The matlab version is 2015b, and I've tried MinGW64 5.1.0 and 4.9.2, both version has this issue. This may due to c++11 settings? Should I update matlab versison to 2016b?


Update: Using MinGW as c++ compiler, I also encounter undefined reference to cv:: error. Solved these issue with visual studio 2012 as c++ compiler and matlab 2017b as default matlab. Maybe this is due to the linked opencv 2.4.9 library is compiled using vc11.

matvec avatar May 27 '19 03:05 matvec

When I try to compile the file "generateEllipseCandidates.cpp" in MATLAB , a problem occurs as follow:

mex G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp -IG:\software\opencv\build\include -IG:\software\opencv\build\include\opencv -IG:\software\opencv\build\include\opencv2 -LG:\software\opencv\build\x64\vc11\lib -I'C:\Program Files\MATLAB\R2017a\extern\include' -L'C:\Program Files\MATLAB\R2017a\extern\lib\win64\microsoft' -lopencv_core249 -lopencv_highgui249 -lopencv_imgproc249 -llibmwlapack.lib (--------report as bellow:) 使用 'MinGW64 Compiler (C++)' 编译。 G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'void rect_copy(rect*, rect*)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:223:76: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( in == NULL || out == NULL ) error("rect_copy: invalid 'in' or 'out'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'double inter_low(double, double, double, double, double)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:255:70: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("inter_low: unsuitable input, 'x1>x2' or 'x<x1' or 'x>x2'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'double inter_hi(double, double, double, double, double)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:277:69: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("inter_hi: unsuitable input, 'x1>x2' or 'x<x1' or 'x>x2'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'void ri_del(rect_iter*)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:290:52: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( iter == NULL ) error("ri_del: NULL iterator."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'int ri_end(rect_iter*)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:302:49: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( i == NULL ) error("ri_end: NULL iterator."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'void ri_inc(rect_iter*)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:318:49: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( i == NULL ) error("ri_inc: NULL iterator."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'rect_iter* ri_ini(rect*)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:392:53: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( r == NULL ) error("ri_ini: invalid rectangle."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:396:53: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( i == NULL ) error("ri_ini: Not enough memory."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'void free_image_double(image_double)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:461:52: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("free_image_double: invalid input image."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'image_double_s* new_image_double(int, int)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:474:79: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( xsize == 0 || ysize == 0 ) error("new_image_double: invalid image size."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:478:49: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( image == NULL ) error("not enough memory."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:480:55: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( image->data == NULL ) error("not enough memory."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'image_double_s* new_image_double_ptr(int, int, double*)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:500:54: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("new_image_double_ptr: invalid image size."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:501:70: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( data == NULL ) error("new_image_double_ptr: NULL data pointer."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:505:49: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( image == NULL ) error("not enough memory."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'void free_ntuple_list(ntuple_list)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:554:53: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("free_ntuple_list: invalid n-tuple input."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'ntuple_list_s* new_ntuple_list(int)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:568:66: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( dim == 0 ) error("new_ntuple_list: 'dim' must be positive."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:572:51: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( n_tuple == NULL ) error("not enough memory."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:581:59: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( n_tuple->values == NULL ) error("not enough memory."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'void enlarge_ntuple_list(ntuple_list)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:593:50: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("enlarge_ntuple_list: invalid n-tuple."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:601:59: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( n_tuple->values == NULL ) error("not enough memory."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'void add_7tuple(ntuple_list, double, double, double, double, double, double, double)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:611:63: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( out == NULL ) error("add_7tuple: invalid n-tuple input."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:612:73: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( out->dim != 7 ) error("add_7tuple: the n-tuple must be a 7-tuple."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:616:71: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( out->values == NULL ) error("add_7tuple: invalid n-tuple input."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'void add_8tuple(ntuple_list, double, double, double, double, double, double, double, int)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:637:63: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( out == NULL ) error("add_8tuple: invalid n-tuple input."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:638:73: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( out->dim != 8 ) error("add_8tuple: the n-tuple must be a 8-tuple."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:642:71: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( out->values == NULL ) error("add_8tuple: invalid n-tuple input."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'void free_image_char(image_char)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:677:50: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("free_image_char: invalid input image."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'image_char_s* new_image_char(unsigned int, unsigned int)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:690:77: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( xsize == 0 || ysize == 0 ) error("new_image_char: invalid image size."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:694:49: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( image == NULL ) error("not enough memory."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:697:55: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( image->data == NULL ) error("not enough memory."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'image_char_s* new_image_char_ini(unsigned int, unsigned int, unsigned char)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:719:47: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("new_image_char_ini: invalid image."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'image_int_s* new_image_int(unsigned int, unsigned int)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:750:76: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( xsize == 0 || ysize == 0 ) error("new_image_int: invalid image size."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:754:49: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( image == NULL ) error("not enough memory."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:756:55: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( image->data == NULL ) error("not enough memory."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'void gaussian_kernel(ntuple_list, double, double)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:796:55: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("gaussian_kernel: invalid n-tuple 'kernel'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:797:72: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( sigma <= 0.0 ) error("gaussian_kernel: 'sigma' must be positive."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'image_double_s* gaussian_sampler(image_double, double, double)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:862:45: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("gaussian_sampler: invalid image."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:863:73: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( scale <= 0.0 ) error("gaussian_sampler: 'scale' must be positive."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:865:62: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("gaussian_sampler: 'sigma_scale' must be positive."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:870:78: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("gaussian_sampler: the output image size exceeds the handled size."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'image_double_s* ll_angle(image_double, double, coorlist**, image_double_s**, unsigned int)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1014:37: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("ll_angle: invalid image."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1015:72: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( threshold < 0.0 ) error("ll_angle: 'threshold' must be positive."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1016:66: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( list_p == NULL ) error("ll_angle: NULL point2ier 'list_p'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1018:68: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( modgrad == NULL ) error("ll_angle: NULL point2ier 'modgrad'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1019:65: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( n_bins == 0 ) error("ll_angle: 'n_bins' must be positive."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1040:31: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("not enough memory."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'int isaligned(int, int, image_double, double, double)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1148:47: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("isaligned: invalid image 'angles'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1150:47: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("isaligned: (x,y) out of the image."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1151:63: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( prec < 0.0 ) error("isaligned: 'prec' must be positive."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'double nfa(int, int, double, double)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1317:41: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("nfa: wrong n, k or p values."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'double rect_nfa(rect*, image_double, double)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1406:57: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( rec == NULL ) error("rect_nfa: invalid rectangle."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1407:59: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( angles == NULL ) error("rect_nfa: invalid 'angles'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'double get_theta(point2i*, int, double, double, image_double, double, double)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1493:55: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( reg == NULL ) error("get_theta: invalid region."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1494:59: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( reg_size <= 1 ) error("get_theta: region size <= 1."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1496:42: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("get_theta: invalid 'modgrad'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1497:63: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( prec < 0.0 ) error("get_theta: 'prec' must be positive."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1508:44: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("get_theta: null inertia matrix."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'void region2rect(point2i*, int, image_double, double, double, double, rect*)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1564:57: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( reg == NULL ) error("region2rect: invalid region."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1565:61: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( reg_size <= 1 ) error("region2rect: region size <= 1."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1567:50: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("region2rect: invalid image 'modgrad'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1568:56: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( rec == NULL ) error("region2rect: invalid 'rec'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1589:67: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( sum <= 0.0 ) error("region2rect: weights sum equal to zero."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'void region2rect2(point2i*, int, double, double, double, double, double, rect*)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1666:57: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( reg == NULL ) error("region2rect: invalid region."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1667:61: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( reg_size <= 1 ) error("region2rect: region size <= 1."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1668:56: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( rec == NULL ) error("region2rect: invalid 'rec'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'void region_grow(int, int, image_double, point2i*, int*, double*, image_char, double)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1722:49: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("region_grow: (x,y) out of the image."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1724:49: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("region_grow: invalid image 'angles'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1725:56: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( reg == NULL ) error("region_grow: invalid 'reg'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1726:76: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( reg_size == NULL ) error("region_grow: invalid point2ier 'reg_size'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1727:78: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( reg_angle == NULL ) error("region_grow: invalid point2ier 'reg_angle'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1729:47: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("region_grow: invalid image 'used'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'int reduce_region_radius(point2i*, int*, image_double, double, double, double, rect*, image_char, image_double, double)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1888:75: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( reg == NULL ) error("reduce_region_radius: invalid point2ier 'reg'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1890:64: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("reduce_region_radius: invalid point2ier 'reg_size'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1891:74: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( prec < 0.0 ) error("reduce_region_radius: 'prec' must be positive."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1892:75: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( rec == NULL ) error("reduce_region_radius: invalid point2ier 'rec'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1894:56: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("reduce_region_radius: invalid image 'used'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1896:58: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("reduce_region_radius: invalid image 'angles'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'int refine(point2i*, int*, image_double, double, double, double, rect*, image_char, image_double, double)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1965:61: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( reg == NULL ) error("refine: invalid point2ier 'reg'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1966:71: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( reg_size == NULL ) error("refine: invalid point2ier 'reg_size'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1967:60: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( prec < 0.0 ) error("refine: 'prec' must be positive."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1968:61: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( rec == NULL ) error("refine: invalid point2ier 'rec'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1970:42: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("refine: invalid image 'used'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:1972:44: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("refine: invalid image 'angles'."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'bool isArcSegment(point2i*, int, rect*, image_double, image_char, image_char, double, double, rect*, rect*)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:2050:4: warning: case label value is less than minimum value for type case OPP_POL : opp_pol_cnt++; break;//统计反极性的pixel数量 ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'double* LineSegmentDetection(int*, double*, int, int, double, double, double, double, double, double, int, int**, int*, int*)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:2197:69: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( img == NULL || X <= 0 || Y <= 0 ) error("invalid image input."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:2198:61: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( scale <= 0.0 ) error("'scale' value must be positive."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:2199:73: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( sigma_scale <= 0.0 ) error("'sigma_scale' value must be positive."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:2200:60: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( quant < 0.0 ) error("'quant' value must be positive."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:2202:57: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("'ang_th' value must be in the range (0,180)."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:2204:59: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("'density_th' value must be in the range [0,1]."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:2205:61: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( n_bins <= 0 ) error("'n_bins' value must be positive."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:2253:47: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( reg == NULL ) error("not enough memory!"); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:2384:69: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if( region == NULL ) error("'region' should be a valid image."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:2388:57: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("region image to big to fit in INT sizes."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:2398:50: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("too many detections to fit in an INT."); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'void groupLSs(double*, int, int*, int, int, std::vector<std::vector >)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:2570:33: warning: ISO C++ forbids converting a string constant to 'char' [-Wwrite-strings] error("group ls error1"); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:2590:32: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("group ls error2"); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:2651:33: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("group ls error3"); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:2671:32: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("group ls error2"); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'int cluster2DPoints(double*, int, double, double*&, int*)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:2947:45: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("cluster2DPoints, not enough memory"); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'PairGroupList* pairGroupListInit(int)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:3187:49: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("paired groups length less equal than 0"); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:3192:46: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("pairGroupListInit,not enough memory"); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'void freePairGroupList(PairGroupList*)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:3199:44: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("freePairGroupList,invalidate free"); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'void calculateGradient(double*, unsigned int, unsigned int, image_double_s**, image_double_s**)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:3211:35: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("calculateGradient error!"); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'void calculateGradient2(double*, unsigned int, unsigned int, image_double_s**)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:3280:35: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("calculateGradient error!"); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'PairGroupList* getValidInitialEllipseSet(double*, int, std::vector<std::vector >, double, image_double, double, int)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:4560:78: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("getValidInitialEllipseSet, selection of salient ellipses failed!");//这种情况会出现??,跑54.jpg出现该问题 ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp: In function 'void generateEllipseCandidates(PairGroupList*, double, double*&, int*)': G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:4706:55: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("generateEllipseCandidates, not enough memory"); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:4722:91: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("generateEllipseCandidates, cluster2DPoints, error in clustering elliptic centers"); ^ G:\matlab_code\High-quality-ellipse-detection-master\generateEllipseCandidates.cpp:4761:81: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] error("generateEllipseCandidates, no XY points near to the clustering center"); ^

错误使用 mex G:\software\opencv\build\x64\vc11\lib/opencv_core249.lib: error adding symbols: File in wrong format collect2.exe: error: ld returned 1 exit status

   Could anyone give me some advice? Thank you so much.

Just a thought, maybe try linking the mingw64 library in 'C:\Program Files\MATLAB\R2017a\extern\lib\win64\mingw64' instead of the microsoft library in 'C:\Program Files\MATLAB\R2017a\extern\lib\win64\microsoft' since you are using mingw?

SipengLiang avatar Jul 15 '19 04:07 SipengLiang

Solution: find the error function in the cpp file. change the char * to std::string. I guess you will also meet some errors concerning the vector, then add using namespace std or change vector to std::vector.

xiahaa avatar May 21 '20 15:05 xiahaa