jfrasch / qpDUNES

qpDUNES - an implementation of the DUal NEwton Strategy for quadratic programming
24 stars 17 forks source link

Matlab interface does not compile with Visual Studio under Windows 7 #2

Open ferreau opened 10 years ago

ferreau commented 10 years ago

....\SRC\dual_qp.c(42) : warning C4101: 'tQpStart' : unreferenced local variable ....\SRC\dual_qp.c(42) : warning C4101: 'tItStart' : unreferenced local variable ....\SRC\dual_qp.c(44) : warning C4101: 'tLineSearchEnd' : unreferenced local variable ....\SRC\dual_qp.c(44) : warning C4101: 'tDiff' : unreferenced local variable ....\SRC\dual_qp.c(44) : warning C4101: 'tLineSearchStart' : unreferenced local variable ....\SRC\dual_qp.c(42) : warning C4101: 'tItEnd' : unreferenced local variable ....\SRC\dual_qp.c(42) : warning C4101: 'tQpEnd' : unreferenced local variable ....\SRC\dual_qp.c(383) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(387) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(391) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(394) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(399) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(404) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(450) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(459) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(498) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(596) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(610) : error C2275: 'boolean_t' : illegal use of this type as an expression ../../INCLUDE\qp/types.h(148) : see declaration of 'boolean_t' ....\SRC\dual_qp.c(610) : error C2146: syntax error : missing ';' before identifier 'addToRes' ....\SRC\dual_qp.c(610) : error C2065: 'addToRes' : undeclared identifier ....\SRC\dual_qp.c(611) : error C2065: 'addToRes' : undeclared identifier ....\SRC\dual_qp.c(619) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(635) : error C2275: 'zx_matrix_t' : illegal use of this type as an expression ../../INCLUDE\qp/types.h(264) : see declaration of 'zx_matrix_t' ....\SRC\dual_qp.c(635) : error C2065: 'ZTCT' : undeclared identifier ....\SRC\dual_qp.c(636) : error C2065: 'ZTCT' : undeclared identifier ....\SRC\dual_qp.c(636) : error C2223: left of '->data' must point to struct/union ....\SRC\dual_qp.c(636) : warning C4047: 'function' : 'const real_t const ' differs in levels of indirection from 'int_t' ....\SRC\dual_qp.c(636) : warning C4024: 'multiplyMatrixMatrixTDenseDense' : different types for formal and actual parameter 3 ....\SRC\dual_qp.c(636) : error C2198: 'multiplyMatrixMatrixTDenseDense' : too few arguments for call ....\SRC\dual_qp.c(638) : error C2065: 'ZTCT' : undeclared identifier ....\SRC\dual_qp.c(638) : warning C4047: 'function' : 'const zz_matrix_t const ' differs in levels of indirection from 'int' ....\SRC\dual_qp.c(638) : warning C4024: 'backsolveRT_ZTCT' : different types for formal and actual parameter 4 ....\SRC\dual_qp.c(640) : error C2275: 'boolean_t' : illegal use of this type as an expression ../../INCLUDE\qp/types.h(148) : see declaration of 'boolean_t' ....\SRC\dual_qp.c(640) : error C2146: syntax error : missing ';' before identifier 'addToRes' ....\SRC\dual_qp.c(640) : error C2065: 'addToRes' : undeclared identifier ....\SRC\dual_qp.c(641) : error C2065: 'addToRes' : undeclared identifier ....\SRC\dual_qp.c(648) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(649) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(659) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(680) : error C2275: 'boolean_t' : illegal use of this type as an expression ../../INCLUDE\qp/types.h(148) : see declaration of 'boolean_t' ....\SRC\dual_qp.c(680) : error C2146: syntax error : missing ';' before identifier 'addToRes' ....\SRC\dual_qp.c(680) : error C2065: 'addToRes' : undeclared identifier ....\SRC\dual_qp.c(681) : error C2065: 'addToRes' : undeclared identifier ....\SRC\dual_qp.c(684) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(685) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(694) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(695) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(730) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(736) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(741) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(781) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(782) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(803) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(804) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(882) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(884) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(896) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(930) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(941) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(954) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(955) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(1014) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(1019) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(1020) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(1056) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(1060) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(1061) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(1076) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(1108) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(1110) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(1115) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(1147) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(1150) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(1151) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(1192) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(1195) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(1196) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(1213) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(1215) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(1220) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(1256) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(1259) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(1265) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(1270) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(1277) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(1282) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(1285) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(1325) : error C2275: 'int_t' : illegal use of this type as an expression ../../INCLUDE\qp/types.h(99) : see declaration of 'int_t' ....\SRC\dual_qp.c(1325) : error C2146: syntax error : missing ';' before identifier 'kk' ....\SRC\dual_qp.c(1325) : error C2065: 'kk' : undeclared identifier ....\SRC\dual_qp.c(1326) : error C2275: 'interval_t' : illegal use of this type as an expression ../../INCLUDE\qp/types.h(478) : see declaration of 'interval_t' ....\SRC\dual_qp.c(1326) : error C2065: 'interval' : undeclared identifier ....\SRC\dual_qp.c(1334) : error C2065: 'kk' : undeclared identifier ....\SRC\dual_qp.c(1334) : error C2065: 'kk' : undeclared identifier ....\SRC\dual_qp.c(1334) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(1334) : error C2065: 'kk' : undeclared identifier ....\SRC\dual_qp.c(1336) : error C2065: 'kk' : undeclared identifier ....\SRC\dual_qp.c(1338) : error C2065: 'kk' : undeclared identifier ....\SRC\dual_qp.c(1353) : error C2065: 'kk' : undeclared identifier ....\SRC\dual_qp.c(1353) : error C2065: 'kk' : undeclared identifier ....\SRC\dual_qp.c(1353) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(1353) : error C2065: 'kk' : undeclared identifier ....\SRC\dual_qp.c(1354) : error C2065: 'interval' : undeclared identifier ....\SRC\dual_qp.c(1354) : error C2065: 'kk' : undeclared identifier ....\SRC\dual_qp.c(1354) : warning C4047: '=' : 'int' differs in levels of indirection from 'interval_t ' ....\SRC\dual_qp.c(1356) : error C2065: 'interval' : undeclared identifier ....\SRC\dual_qp.c(1356) : error C2223: left of '->qpSolverSpecification' must point to struct/union ....\SRC\dual_qp.c(1358) : error C2065: 'interval' : undeclared identifier ....\SRC\dual_qp.c(1358) : warning C4047: 'function' : 'interval_t const ' differs in levels of indirection from 'int' ....\SRC\dual_qp.c(1358) : warning C4024: 'directQpSolver_doStep' : different types for formal and actual parameter 2 ....\SRC\dual_qp.c(1359) : error C2065: 'interval' : undeclared identifier ....\SRC\dual_qp.c(1359) : error C2223: left of '->qpSolverClipping' must point to struct/union ....\SRC\dual_qp.c(1359) : error C2440: 'function' : cannot convert from 'real_t' to 'const z_vector_t const ' ....\SRC\dual_qp.c(1359) : warning C4024: 'directQpSolver_doStep' : different types for formal and actual parameter 3 ....\SRC\dual_qp.c(1360) : error C2065: 'interval' : undeclared identifier ....\SRC\dual_qp.c(1360) : error C2223: left of '->qpSolverClipping' must point to struct/union ....\SRC\dual_qp.c(1361) : error C2065: 'interval' : undeclared identifier ....\SRC\dual_qp.c(1361) : error C2223: left of '->z' must point to struct/union ....\SRC\dual_qp.c(1361) : error C2065: 'interval' : undeclared identifier ....\SRC\dual_qp.c(1361) : error C2223: left of '->y' must point to struct/union ....\SRC\dual_qp.c(1361) : error C2065: 'interval' : undeclared identifier ....\SRC\dual_qp.c(1361) : error C2223: left of '->q' must point to struct/union ....\SRC\dual_qp.c(1362) : error C2065: 'interval' : undeclared identifier ....\SRC\dual_qp.c(1362) : error C2223: left of '->p' must point to struct/union ....\SRC\dual_qp.c(1362) : error C2198: 'directQpSolver_doStep' : too few arguments for call ....\SRC\dual_qp.c(1366) : error C2065: 'interval' : undeclared identifier ....\SRC\dual_qp.c(1366) : error C2223: left of '->qpSolverQpoases' must point to struct/union ....\SRC\dual_qp.c(1367) : error C2065: 'interval' : undeclared identifier ....\SRC\dual_qp.c(1367) : warning C4022: 'qpOASES_doStep' : pointer mismatch for actual parameter 2 ....\SRC\dual_qp.c(1367) : error C2440: 'function' : cannot convert from 'real_t' to 'interval_t const ' ....\SRC\dual_qp.c(1367) : warning C4024: 'qpOASES_doStep' : different types for formal and actual parameter 3 ....\SRC\dual_qp.c(1367) : error C2065: 'interval' : undeclared identifier ....\SRC\dual_qp.c(1367) : error C2223: left of '->z' must point to struct/union ....\SRC\dual_qp.c(1367) : error C2065: 'interval' : undeclared identifier ....\SRC\dual_qp.c(1367) : error C2223: left of '->y' must point to struct/union ....\SRC\dual_qp.c(1368) : error C2065: 'interval' : undeclared identifier ....\SRC\dual_qp.c(1368) : error C2223: left of '->q' must point to struct/union ....\SRC\dual_qp.c(1368) : error C2065: 'interval' : undeclared identifier ....\SRC\dual_qp.c(1368) : error C2223: left of '->p' must point to struct/union ....\SRC\dual_qp.c(1368) : error C2198: 'qpOASES_doStep' : too few arguments for call ....\SRC\dual_qp.c(1446) : error C2065: 'kk' : undeclared identifier ....\SRC\dual_qp.c(1446) : error C2065: 'kk' : undeclared identifier ....\SRC\dual_qp.c(1446) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(1446) : error C2065: 'kk' : undeclared identifier ....\SRC\dual_qp.c(1447) : error C2065: 'interval' : undeclared identifier ....\SRC\dual_qp.c(1447) : error C2065: 'kk' : undeclared identifier ....\SRC\dual_qp.c(1447) : warning C4047: '=' : 'int' differs in levels of indirection from 'interval_t ' ....\SRC\dual_qp.c(1450) : error C2065: 'interval' : undeclared identifier ....\SRC\dual_qp.c(1450) : error C2223: left of '->qpSolverSpecification' must point to struct/union ....\SRC\dual_qp.c(1452) : error C2065: 'interval' : undeclared identifier ....\SRC\dual_qp.c(1452) : warning C4047: 'function' : 'interval_t const ' differs in levels of indirection from 'int' ....\SRC\dual_qp.c(1452) : warning C4024: 'directQpSolver_doStep' : different types for formal and actual parameter 2 ....\SRC\dual_qp.c(1453) : error C2065: 'interval' : undeclared identifier ....\SRC\dual_qp.c(1453) : error C2223: left of '->qpSolverClipping' must point to struct/union ....\SRC\dual_qp.c(1453) : error C2440: 'function' : cannot convert from 'real_t' to 'const z_vector_t const ' ....\SRC\dual_qp.c(1453) : warning C4024: 'directQpSolver_doStep' : different types for formal and actual parameter 3 ....\SRC\dual_qp.c(1454) : error C2065: 'interval' : undeclared identifier ....\SRC\dual_qp.c(1454) : error C2223: left of '->qpSolverClipping' must point to struct/union ....\SRC\dual_qp.c(1455) : error C2065: 'interval' : undeclared identifier ....\SRC\dual_qp.c(1455) : error C2223: left of '->z' must point to struct/union ....\SRC\dual_qp.c(1455) : error C2065: 'interval' : undeclared identifier ....\SRC\dual_qp.c(1455) : error C2223: left of '->y' must point to struct/union ....\SRC\dual_qp.c(1455) : error C2065: 'interval' : undeclared identifier ....\SRC\dual_qp.c(1455) : error C2223: left of '->q' must point to struct/union ....\SRC\dual_qp.c(1456) : error C2065: 'interval' : undeclared identifier ....\SRC\dual_qp.c(1456) : error C2223: left of '->p' must point to struct/union ....\SRC\dual_qp.c(1456) : error C2198: 'directQpSolver_doStep' : too few arguments for call ....\SRC\dual_qp.c(1460) : error C2065: 'interval' : undeclared identifier ....\SRC\dual_qp.c(1460) : error C2223: left of '->qpSolverQpoases' must point to struct/union ....\SRC\dual_qp.c(1461) : error C2065: 'interval' : undeclared identifier ....\SRC\dual_qp.c(1461) : warning C4022: 'qpOASES_doStep' : pointer mismatch for actual parameter 2 ....\SRC\dual_qp.c(1461) : error C2440: 'function' : cannot convert from 'real_t' to 'interval_t const ' ....\SRC\dual_qp.c(1461) : warning C4024: 'qpOASES_doStep' : different types for formal and actual parameter 3 ....\SRC\dual_qp.c(1461) : error C2065: 'interval' : undeclared identifier ....\SRC\dual_qp.c(1461) : error C2223: left of '->z' must point to struct/union ....\SRC\dual_qp.c(1461) : error C2065: 'interval' : undeclared identifier ....\SRC\dual_qp.c(1461) : error C2223: left of '->y' must point to struct/union ....\SRC\dual_qp.c(1462) : error C2065: 'interval' : undeclared identifier ....\SRC\dual_qp.c(1462) : error C2223: left of '->q' must point to struct/union ....\SRC\dual_qp.c(1462) : error C2065: 'interval' : undeclared identifier ....\SRC\dual_qp.c(1462) : error C2223: left of '->p' must point to struct/union ....\SRC\dual_qp.c(1462) : error C2198: 'qpOASES_doStep' : too few arguments for call ....\SRC\dual_qp.c(1502) : warning C4018: '<' : signed/unsigned mismatch ....\SRC\dual_qp.c(1546) : error C2275: 'real_t' : illegal use of this type as an expression ../../INCLUDE\qp/types.h(101) : see declaration of 'real_t' ....\SRC\dual_qp.c(1546) : error C2146: syntax error : missing ';' before identifier 'minimumProgress' ....\SRC\dual_qp.c(1546) : error C2065: 'minimumProgress' : undeclared identifier ....\SRC\dual_qp.c(1546) : fatal error C1003: error count exceeds 100; stopping compilation

C:\PROGRA~2\MATLAB\R2009B\BIN\MEX.PL: Error: Compile of '....\SRC\dual_qp.c' failed.

??? Error using ==> mex at 221 Unable to complete successfully.

Error in ==> make at 76 eval( cmd );

jfrasch commented 10 years ago

presumably a missing -std=C99 flag in the Windows compiler settings. Windows is not yet officially supported as a platform, but will come soon.

jfrasch commented 10 years ago

@ferreau committed a fix, so there is an elementary build support for Matlab on Windows now. Rigorous testing is however still needed.