Hello everybody,
I am trying for a while to get the NLopt plugin running for MatLab and have
ready everything I could find to solve my problems. But I still cannot use
NLopt.
My system: Windows 7 64bit, MatLab R2012b, Compiler Microsoft Visual C++
2010
I have extracted nlopt-2.3-dll.zip and copied all files from MatLab to my
working directory. In the command prompt (DOS), I managed to create a lib
file via the vsvars32.bat from Visual Studio with following command: lib
/def:libnlop-0.def /MACHINE:X64 and copied this to my MatLab working
directory.
Now in MatLab, I tried to compile the nlopt_optimize.c File by: mex -v
nlopt_optimize.c libnlopt-0.lib
Here I get following error message:
-> Default options filename found in
C:\Users\sfkube\AppData\Roaming\MathWorks\MATLAB\R2012b
----------------------------------------------------------------
-> Options file =
C:\Users\sfkube\AppData\Roaming\MathWorks\MATLAB\R2012b\mexopts.bat
MATLAB = C:\Program Files\MATLAB\R2012b
-> COMPILER = cl
-> Compiler flags:
COMPFLAGS = /c /GR /W3 /EHs /D_CRT_SECURE_NO_DEPRECATE
/D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMATLAB_MEX_FILE /nologo /MD
OPTIMFLAGS = /O2 /Oy- /DNDEBUG
DEBUGFLAGS = /Z7
arguments =
Name switch = /Fo
-> Pre-linking commands =
-> LINKER = link
-> Link directives:
LINKFLAGS = /dll /export:mexFunction /LIBPATH:"C:\Program
Files\MATLAB\R2012b\extern\lib\win64\microsoft" libmx.lib libmex.lib
libmat.lib /MACHINE:X64 kernel32.lib user32.lib gdi32.lib winspool.lib
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib
odbc32.lib odbccp32.lib /nologo /manifest /incremental:NO
/implib:"C:\Users\sfkube\AppData\Local\Temp\mex_CbwNHj\templib.x"
/MAP:"nlopt_optimize.mexw64.map"
LINKDEBUGFLAGS = /debug /PDB:"nlopt_optimize.mexw64.pdb"
LINKFLAGSPOST =
Name directive = /out:"nlopt_optimize.mexw64"
File link directive =
Lib. link directive =
Rsp file indicator = @
-> Resource Compiler = rc /fo "mexversion.res"
-> Resource Linker =
--------------------------------------------------------------
--> cl /c /GR /W3 /EHs /D_CRT_SECURE_NO_DEPRECATE
/D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMATLAB_MEX_FILE /nologo /MD
/FoC:\Users\sfkube\AppData\Local\Temp\mex_CbwNHj\nlopt_optimize.obj
-I"C:\Program Files\MATLAB\R2012b\extern\include" -I"C:\Program
Files\MATLAB\R2012b\simulink\include" /O2 /Oy- /DNDEBUG -DMX_COMPAT_32
nlopt_optimize.c
nlopt_optimize.c
nlopt_optimize.c(175) : warning C4244: 'Funktion': Konvertierung von
'double' in 'int', mglicher Datenverlust
nlopt_optimize.c(178) : warning C4244: 'Funktion': Konvertierung von
'double' in 'unsigned int', mglicher Datenverlust
nlopt_optimize.c(179) : warning C4244: 'Funktion': Konvertierung von
'double' in 'unsigned int', mglicher Datenverlust
nlopt_optimize.c(152) : warning C4101: 'i': Unreferenzierte lokale Variable
nlopt_optimize.c(220) : warning C4267: '=': Konvertierung von 'size_t' nach
'unsigned int', Datenverlust mglich
nlopt_optimize.c(287) : warning C4267: '=': Konvertierung von 'size_t' nach
'int', Datenverlust mglich
nlopt_optimize.c(324) : warning C4267: '=': Konvertierung von 'size_t' nach
'int', Datenverlust mglich
nlopt_optimize.c(356) : warning C4267: 'Funktion': Konvertierung von
'size_t' nach 'int', Datenverlust mglich
nlopt_optimize.c(356) : warning C4267: 'Funktion': Konvertierung von
'size_t' nach 'int', Datenverlust mglich
Contents of C:\Users\sfkube\AppData\Local\Temp\mex_CbwNHj\mex_tmp.rsp:
C:\Users\sfkube\AppData\Local\Temp\mex_CbwNHj\nlopt_optimize.obj
libnlopt-0.lib
--> link /out:"nlopt_optimize.mexw64" /dll /export:mexFunction
/LIBPATH:"C:\Program Files\MATLAB\R2012b\extern\lib\win64\microsoft"
libmx.lib libmex.lib libmat.lib /MACHINE:X64 kernel32.lib user32.lib
gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib
oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /manifest
/incremental:NO
/implib:"C:\Users\sfkube\AppData\Local\Temp\mex_CbwNHj\templib.x"
/MAP:"nlopt_optimize.mexw64.map"
@C:\Users\sfkube\AppData\Local\Temp\mex_CbwNHj\mex_tmp.rsp
Bibliothek "C:\Users\sfkube\AppData\Local\Temp\mex_CbwNHj\templib.x" und
Objekt "C:\Users\sfkube\AppData\Local\Temp\mex_CbwNHj\templib.exp" werden
erstellt.
nlopt_optimize.obj : error LNK2019: Verweis auf nicht aufgelöstes externes
Symbol "__imp_nlopt_force_stop" in Funktion "user_function".
nlopt_optimize.obj : error LNK2019: Verweis auf nicht aufgelöstes externes
Symbol "__imp_nlopt_set_local_optimizer" in Funktion "make_opt".
nlopt_optimize.obj : error LNK2019: Verweis auf nicht aufgelöstes externes
Symbol "__imp_nlopt_set_initial_step" in Funktion "make_opt".
nlopt_optimize.obj : error LNK2019: Verweis auf nicht aufgelöstes externes
Symbol "__imp_nlopt_set_vector_storage" in Funktion "make_opt".
nlopt_optimize.obj : error LNK2019: Verweis auf nicht aufgelöstes externes
Symbol "__imp_nlopt_set_population" in Funktion "make_opt".
nlopt_optimize.obj : error LNK2019: Verweis auf nicht aufgelöstes externes
Symbol "__imp_nlopt_set_maxtime" in Funktion "make_opt".
nlopt_optimize.obj : error LNK2019: Verweis auf nicht aufgelöstes externes
Symbol "__imp_nlopt_set_maxeval" in Funktion "make_opt".
nlopt_optimize.obj : error LNK2019: Verweis auf nicht aufgelöstes externes
Symbol "__imp_nlopt_set_xtol_abs" in Funktion "make_opt".
nlopt_optimize.obj : error LNK2019: Verweis auf nicht aufgelöstes externes
Symbol "__imp_nlopt_set_xtol_rel" in Funktion "make_opt".
nlopt_optimize.obj : error LNK2019: Verweis auf nicht aufgelöstes externes
Symbol "__imp_nlopt_set_ftol_abs" in Funktion "make_opt".
nlopt_optimize.obj : error LNK2019: Verweis auf nicht aufgelöstes externes
Symbol "__imp_nlopt_set_ftol_rel" in Funktion "make_opt".
nlopt_optimize.obj : error LNK2019: Verweis auf nicht aufgelöstes externes
Symbol "__imp_nlopt_set_stopval" in Funktion "make_opt".
nlopt_optimize.obj : error LNK2019: Verweis auf nicht aufgelöstes externes
Symbol "__imp_nlopt_set_upper_bounds" in Funktion "make_opt".
nlopt_optimize.obj : error LNK2019: Verweis auf nicht aufgelöstes externes
Symbol "__imp_nlopt_set_lower_bounds" in Funktion "make_opt".
nlopt_optimize.obj : error LNK2019: Verweis auf nicht aufgelöstes externes
Symbol "__imp_nlopt_destroy" in Funktion "make_opt".
nlopt_optimize.obj : error LNK2019: Verweis auf nicht aufgelöstes externes
Symbol "__imp_nlopt_create" in Funktion "make_opt".
nlopt_optimize.obj : error LNK2019: Verweis auf nicht aufgelöstes externes
Symbol "__imp_nlopt_optimize" in Funktion "mexFunction".
nlopt_optimize.obj : error LNK2019: Verweis auf nicht aufgelöstes externes
Symbol "__imp_nlopt_add_equality_constraint" in Funktion "mexFunction".
nlopt_optimize.obj : error LNK2019: Verweis auf nicht aufgelöstes externes
Symbol "__imp_nlopt_add_inequality_constraint" in Funktion "mexFunction".
nlopt_optimize.obj : error LNK2019: Verweis auf nicht aufgelöstes externes
Symbol "__imp_nlopt_set_max_objective" in Funktion "mexFunction".
nlopt_optimize.obj : error LNK2019: Verweis auf nicht aufgelöstes externes
Symbol "__imp_nlopt_set_min_objective" in Funktion "mexFunction".
nlopt_optimize.obj : error LNK2019: Verweis auf nicht aufgelöstes externes
Symbol "__imp_nlopt_set_precond_max_objective" in Funktion "mexFunction".
nlopt_optimize.obj : error LNK2019: Verweis auf nicht aufgelöstes externes
Symbol "__imp_nlopt_set_precond_min_objective" in Funktion "mexFunction".
nlopt_optimize.mexw64 : fatal error LNK1120: 23 nicht aufgelöste externe
Verweise.
C:\PROGRA~1\MATLAB\R2012B\BIN\MEX.PL: Error: Link of
'nlopt_optimize.mexw64' failed.
Error using mex (line 206)
Unable to complete successfully.
I have no idea, what else to try. If maybe somebody gives me a tipp or could
help me solve the problem, I would be very happy!
Best regards,
Bettina Kutschera
_______________________________________________
NLopt-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/nlopt-discuss