SystemC: Fehler beim Übersetzen

Ich habe heute die SystemC 2.2.0 Referenzimplementierung gezogen und mich wiedermal darüber geärgert, dass nach wie vor die Sourcen nicht auf Anhieb übersetzbar sind. Anscheinend landen meine Mails an die OpenSystemC-Initiative direkt in /dev/null, denn ich habe schon mehrfach auf das Problem und dessen Lösung aufmerksam gemacht. Wie auch immer – hier die Lösung für alle, die auf das Problem stoßen: Beim Übersetzen der SystemC-Library kommt es beim Übersetzen mit dem gcc-4.5.4 (und darüber) zu den Fehlern:

sc_utils_ids.cpp: In Funktion »int sc_core::initialize()«:
sc_utils_ids.cpp:110:36: Fehler: »getenv« ist kein Element von »std«
sc_utils_ids.cpp:111:69: Fehler: »strcmp« wurde in diesem
  Gültigkeitsbereich nicht definiert

Schuld daran sind zwei vergessene Includes in der Datei src/sysc/utils/sc_utils_ids.cpp. Hier müssen am Anfang der Datei Includes eingefügt werden:

#include <cstdlib>
#include <cstring>

Übrigens, beim gcc-4.6.1 kommt es zusätzlich zum Abbruch mit der Meldung

../../../src/sysc/datatypes/bit/sc_bit_proxies.h:716:16:
  Fehler: Referenz »m_obj« kann nicht als »mutable« deklariert
  sein [-fpermissive]

Hier das Übersetzen durch

AM_CXXFLAGS=-fpermissive make

statt dem einfachen make starten.

Schreibe einen Kommentar