vc++ compiler mit matlab nutzen!
-
Hallo!
Hab nen Programm unter VC++ geschrieben. Funktioniert alles und möchte jetzt einige Funktionen in Matlab mit ner mexFunction nutzen. Wenn ich das ganze compilieren möchte, stehen mir die Compiler LCC und der von Microsoft Visual C++ 2005 Express zur Verfügung.
Dem LCC schmeckt aber einiges nich so wie ich es in VC geschrieben habe und es geht auch nur standard ANSI-C. Also will ich den VC++ Compiler nutzen. Der findet allerding bestimmte Header nicht (winsock.h) und sicher dann auch entsprechende Librarys. Bei einem Projekt in VC++ kann man das ja alles unter Projectproperties einstellen bzw. nach folgender Anleitung http://msdn2.microsoft.com/en-us/express/aa700755.aspx vorgehen.Wie kann ich dem Compiler/Linker mitteilen wo die entsprechenden Header und Librarys liegen, wenn ich ihn über Matlab aufrufe?
-
Beim VC2005EE musst Du das PSDK separat runterladen und installieren...
Siehe:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-143003.html
-
Ja! Hab ich alles schon gemacht und bin wie unter http://msdn2.microsoft.com/en-us/express/aa700755.aspx vorgegengen. Das musste ich ja schon machen, damit es alles mit VC2005EE funktioniert.
Allerdings scheint der Compiler die Einstellungen nich zu kennen, wenn ich ihn mit Matlab aufrufe.
-
Du rufst den Compiler von Matlab auf? Wie denn das?
-
help mex
schonmal gemacht? Man kann da allerhand Kommandozeilenoptionen übergeben.
-
Du musst diverse Umgebungsvariablen registrieren, wenn Du den Compiler von der Kommandozeile verwenden willst!
Schau mal in "vcvarsall.bat" und "vcvars32.bat" im VC2008EE-Verzeichnis!
-
Bashar schrieb:
help mex
schonmal gemacht? Man kann da allerhand Kommandozeilenoptionen übergeben.
Ich wühle mich gerade durch. -I und -l sehen vielversprechend aus.
Jochen Kalmbach schrieb:
Du rufst den Compiler von Matlab auf? Wie denn das?
mex -setup (in Matlab) >> dann kann man den compiler wählen >> und mit "mex -c file.c" dass ganze compilieren
-
Wie gesagt... Du musst diverse Umgebungsvariablen registrieren!
-
Brauchte jetzt nix registrieren. Matlab hat mir jetzt ne mexFunction erstellt ohne Fehler zu bringen. Muss erst noch testen ob sie auch funzt.
Hab die etsprechenden Optionen -I -L und -l in Matlab genutzt.
Wichtig ist allerdings, dass man bei der Library bei der Option -l die Endung .lib weglässt!