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

Problem beim Kopilieren von CARNOT 7 unter Ubuntu 18.04

 

fx3

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.04.2020, 20:21     Titel: Problem beim Kopilieren von CARNOT 7 unter Ubuntu 18.04
  Antworten mit Zitat      
Hallo,

ich möchte CARNOT 7 mit MATLAB R2020a unter Ubuntu 18.04 nutzen. Leider erhalte ich Fehlermeldungen beim Kompilieren der c-Dateien, siehe Bilder.

mex setup ist eingerichet, MexMAKE schließt allerdings mit einem unspezifischen Fehler ab.

Code:
Warning: Unable to build mex file for
/home/xxx/MATLAB2020a/CARNOT_7/public/src/write_txt_file.c
> In MakeMEX>CompileCFiles (line 260)
  In MakeMEX (line 99)


Hat jemand eine Idee, wie die Fehler behoben werden können bzw. nutzt jemand CARNOT unter Linux ?

Danke für Feedback.

MATLAT_R2020a - CARNOT_7-2.png
 Beschreibung:

Download
 Dateiname:  MATLAT_R2020a - CARNOT_7-2.png
 Dateigröße:  119.89 KB
 Heruntergeladen:  363 mal
MATLAT_R2020a - CARNOT_7-1.png
 Beschreibung:

Download
 Dateiname:  MATLAT_R2020a - CARNOT_7-1.png
 Dateigröße:  76.15 KB
 Heruntergeladen:  368 mal


askep
Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 04.06.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2020, 15:27     Titel:
  Antworten mit Zitat      
Ich habe kein Linux installiert und kann es nicht testen, aber ein Tipp:
Laut Screenshot tritt das Problem ja bei allen Dateien auf. Ursprünglich kommt die Fehlermeldung aus Zeile 258 in MakeMex. Hier mal einen Breakpoint setzen und das mex command manuell ausführen.
Code:
 eval(['mex CFLAGS="\$CFLAGS -std=c99"', cfiles{Count}, ' ', LibraryFiles, ' -v -largeArrayDims -outdir ', mexdirectory, IncludeDirectories]);
 

In der Regel bekommt man ausführlichere Fehlermeldungen.

Ansonsten noch folgendes:
In der Matlab Hilfe steht das die Flags unter single Quotes zu setzen sind. zB.
Code:
mex -v CFLAGS='\$CFLAGS -std=c99' yprime.c

Ich weiß nicht ob das einen Unterschied ausmacht, weil eigentlich sollte das schonmal funktioniert haben. Wäre aber schnell getestet.
Private Nachricht senden Benutzer-Profile anzeigen
 
fx3

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.04.2020, 20:04     Titel:
  Antworten mit Zitat      
Hallo askep,

ich habe beide Ideen getestet. Leider bin ich bei keiner weitergekommen.

(1) Auch mit Breakpoint gab es leider keine ausführlichere Fehlermeldung.
(2) " oder ' hat auch keine neuen Erkenntnisse gebracht.

Das Problem weiterhin.
 
fx3

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.04.2020, 13:25     Titel:
  Antworten mit Zitat      
Nachtrag: prinzipiell funktioniert mex.

Manche c-Dateien können umgewandelt werden

Code:
>> mex average.c
Building with 'gcc'.
MEX completed successfully.  


Bei anderen klappt es nicht, hier passen vermutlich Abhängigkeiten nicht.

Code:
>> mex boiler.c
Building with 'gcc'.
Error using mex
/tmp/mex_4613147275033_13788/boiler.o: In Funktion »mdlDerivatives«:
boiler.c:(.text+0x24a): Warnung: undefinierter Verweis auf »heat_capacity«
boiler.c:(.text+0x27a): Warnung: undefinierter Verweis auf »density«
collect2: Fehler: ld gab 1 als Ende-Status zurück
 


Das Problem scheint also nicht auf der mex/MATLAB-Seite zu liegen, sondern eher bei CARNOT.

Wenn jemand eine Idee hat, wie man CARNOT 7 unter Ubuntu 18.04 (64 bit) zum Laufen bringt, wäre ich dankbar.
 
fx3

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.04.2020, 21:20     Titel:
  Antworten mit Zitat      
Die schnellste, wenn auch nicht die eleganteste Lösung, war alle c-Datei einzeln mit mex zu kompillieren.

Zitat:
mex example.c carlib.c


Wobei example.c immer gegen den neuen Dateiname aus dem Ordner .../CARNOT_7/public/src ausgetauscht werden muss. carlib.c muss immer mit rein genommen werden. Die mexa64-Dateien werden so erstellt.

CARNOT 7 läuft damit unter Ubuntu.

Thema gelöst.
 
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.