WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

which auf 32bit/64bit Betriebssystemen

 

Christian825
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 10.01.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.01.2012, 10:18     Titel: which auf 32bit/64bit Betriebssystemen
  Antworten mit Zitat      
Hallo,

ich beobachte folgendes Verhalten des which commands, alles getestet mit R2007b:

Ich möchte feststellen, ob eine bestimmte per mex erstellte Datei vorhanden ist.

Wenn ich auf einem Win32-System
which test
eingebe, liefert which korrekt den Pfad der Datei zurück, egal ob die Datei als test.dll oder test.mexw32 dort liegt.

Wenn ich das gleiche auf einem Win64-System mache, dann liefert
which test
im Fall, das die Datei als test.dll vorliegt, eine Meldung, das die Datei nicht gefunden wurde.
Nur wenn die Datei als mexw64 dort liegt, wird sie auch gefunden.

Ist dieses Vehalten so gewollt, d.h. werden 'dll' unter 64bit von Matlab ignoriert?
Ich kann aus verschiedenen Gründen momentan keine echte 64bit-dll (=mexw64) herstellen. Bedeutet das, das auf 64bit-Systemen meine 32bit-dll nicht benutzt werden kann, da Matlab sie nicht findet?

Viele Grüsse,

Christian
Private Nachricht senden Benutzer-Profile anzeigen


Titus
Forum-Meister

Forum-Meister


Beiträge: 871
Anmeldedatum: 19.07.07
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 10.01.2012, 16:50     Titel:
  Antworten mit Zitat      
Hallo,

grundsätzlich sind .dlls (und Mex-Dateien sind .dlls mit anderer Endung) sich nicht von einem Betriebssystem auf das andere übertragen (incl. Windows 32/64), d.h., .mexw32 läuft mit MATLAB 32 Bit, .mexw64 läuft mit MATLAB 64 Bit. R2007b war in etwa die Umstellung der Endung unter Windows von .dll auf .mexw32, d.h., .dll werden auch (wie in Vorgängerversionen) als 32 Bit dll interpretiert und ausgeführt.
Aber ich fürchte die Antwort ist: Ja, die 32 Bit DLLs (egal ob .dll or .mexw32) werden nicht mit MATLAB 64 Bit laufen ...

Titus
Private Nachricht senden Benutzer-Profile anzeigen
 
Titus
Forum-Meister

Forum-Meister


Beiträge: 871
Anmeldedatum: 19.07.07
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 10.01.2012, 16:51     Titel:
  Antworten mit Zitat      
Hallo,

was ich noch vergaß zu erwähnen: das betrifft jeweils das Programm, nicht das Betriebssystem! D.h., wenn MATLAB als 32Bit Programm unter Windows64 installiert wird, braucht es auch 32 Bit Dlls.

Titus
Private Nachricht senden Benutzer-Profile anzeigen
 
Christian825
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 10.01.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.01.2012, 17:11     Titel:
  Antworten mit Zitat      
Hmm ok, das habe ich fast befürchtet. Das heisst, ich muss mir einen Weg suchen, wie ich meine dlls für 64 bit kompilieren kann und in dem Zuge kann ich sie auch gleich nach mexw64 umbenennen.

Ich sehe allerdings bei meinem R2007b (32bit) auf Win64 trotzdem, das es die mexw32 nicht findet. Nur wenn ich sie nach mexw64 umbenenne, findet which die Dateien. Scheinbar orientiert sich Matlab doch an dem Betriebssystem und nicht an der eigenen Version.

Christian
Private Nachricht senden Benutzer-Profile anzeigen
 
Titus
Forum-Meister

Forum-Meister


Beiträge: 871
Anmeldedatum: 19.07.07
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 10.01.2012, 17:20     Titel:
  Antworten mit Zitat      
Hallo,

merkwürdig. Ich habe gerade mit R2008b (32Bit auf Win64) ausprobiert:
Code:

und es liefert mir "brav" die .mexw32 zurück. Was liefert mexext bei Deinem MATLAB?

Titus
Private Nachricht senden Benutzer-Profile anzeigen
 
Christian825
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 10.01.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.01.2012, 18:14     Titel:
  Antworten mit Zitat      
Ups, da hab ich mich wohl geirrt.
mexext liefert mexw64, aber offensichtlich habe ich doch die 64bit-Version von Matlab installiert.
Dann ist es also richtig, und somit auch verständlich, das 32bit-dlls nicht gerufen werden können und daher auch gar nicht gefunden werden müssen.

Viele Grüsse,

Christian
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.