Verfasst am: 09.11.2009, 17:53
Titel: Verweis auf nicht aufgelöstes externes Symbol - matOpen...
Hallo,
ich komme aus der Java Ecke und habe weder von C++ noch von Mathlab Ahnung. Jetzt muss ich für ein wissenschaftliches Paper den Graph-Matching Algorithmus unter http://www.seas.upenn.edu/~timothee/..._matching.html zum laufen bringen.
Es befindet sich im Anhang. Laut dem Autor reichen zum starten die folgenden Schritte:
Zitat:
1) start matlab
2) cd to directory where you unzipped the files (containing a README)
3) type init (to add paths) (ignore warnings about assert if any)
4) type compileDir (ignore warnings about assert if any) to compile mex files
make sure it says at the end: "Compilation of files succeded without error", otherwise try to compile problem files by hand
start:
demo_graph_matching_SMAC;
Mein Ziel ist es, einfach erstmal das Tutorial von denen lauffähig zu bekommen. Jetzt frage ich mich, was ich falsch mache.
Ich verwende Mathlab 7.8.0 (R2009a) und als C++ Compiler die neueste Version von "Microsoft Visual C++ 2008 Express".
Beim Aufruf von "compileDir" erhalte ich nun mehrere der folgenden Fehler:
Error: compilation of \mex_istril.cpp failed : Bibliothek "C:\USERS\JANNOE~1\APPDATA\LOCAL\TEMP\MEX_BY~1\templib.x" und Objekt "C:\USERS\JANNOE~1\APPDATA\LOCAL\TEMP\MEX_BY~1\templib.exp" werden erstellt.
mex_istril.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_matClose_d" in Funktion ""public: static void __cdecl MatlabInterface::save2matfile(struct mxArray_tag *,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?save2matfile@MatlabInterface@@SAXPAUmxArray_tag@@V?$basic_string@DU?$char_traits@D@std@@V?$allocat or@D@2@@std@@1@Z)".
mex_istril.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_matPutVariable_d" in Funktion ""public: static void __cdecl MatlabInterface::save2matfile(struct mxArray_tag *,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?save2matfile@MatlabInterface@@SAXPAUmxArray_tag@@V?$basic_string@DU?$char_traits@D@std@@V?$allocat or@D@2@@std@@1@Z)".
mex_istril.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_matOpen_d" in Funktion ""public: static void __cdecl MatlabInterface::save2matfile(struct mxArray_tag *,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?save2matfile@MatlabInterface@@SAXPAUmxArray_tag@@V?$basic_string@DU?$char_traits@D@std@@V?$allocat or@D@2@@std@@1@Z)".
mex_istril.mexw32 : fatal error LNK1120: 3 nicht aufgelöste externe Verweise.
C:\PROGRA~1\MATLAB\R2009A~1\BIN\MEX.PL: Error: Link of 'mex_istril.mexw32' failed.
Nach Recherchen bin ich darauf gekommen, dass es wohl immer um die Funktion "save2matfile" geht. Diese Funktion steht in der Klasse "MatlabInterface" und sieht wie folgt aus:
Da der Paper bereits im Dezember eingereicht werden muss, stehe ich etwas unter Zeitdruck.
Daher wollte ich fragen, ob irgendjemand eine Idee hat?
Oder welche Informationen braucht ihr noch, um mir helfen zu können?
Woran könnte es liegen? Ich meine der Code müsste ja genau so laufen
Hallo hier wird eigener mex-Befehl verwendet, wahrscheinlich liegt es daran
also habe deswegen compileDir manipuliert und sieht da es wurde compiliert.
also probiere mal bei dir, kopiere compileDir2 zu dem Ordner, wo du entpackt hast
1) start matlab
2) cd to directory where you unzipped the files (containing a README)
3) type init (to add paths) (ignore warnings about assert if any)
4) type mex -setup (select right compiler)
5) type compileDir2
6) copy mex-files in subdirectory util
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.