C++ - Interpreter ;-)

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
alexander_ro
Beiträge: 298
Registriert: 16.01.2006 17:44:21
Lizenz eigener Beiträge: GNU General Public License

C++ - Interpreter ;-)

Beitrag von alexander_ro » 11.07.2012 19:17:44

Hi Mädels ... Jungs,

ich habe hier mal ein Script gebaut mit dem man C++ Sourcecode wie ein Script (Shell, Perl oder ähnl.) ausführen kann.

Da C++ ein # nicht als Kommentar interpretiert muss ich die erste Zeile entfernen. Vielleicht wäre es auch besser diese nur mit einem C++ Kommentar auszukommentieren weil sich dann die Anzahl der Zeilen nicht ändert. Wegen der Zeilennummern in den Fehlermeldungen vom Compiler.

Kann man dem g++ Sourcecode per Pipe übergeben?
Das würde das zwischen Speichern des Sourcecodes ersparen.

Code: Alles auswählen

#!/bin/bash

# Direktory und Dateiname trennen: dirname, basename
ProgName=$(basename $1 .cpp)

# Shebang entfernen
sed -e "1d" $1 > cache/$ProgName.tmp.cpp

# Nur kompilieren wenn der Sourcecode verändert wurde
# oder noch kein Binary vorhanden ist.
if [ -e "cache/$ProgName" ]; then
  find -name "$ProgName.cpp" -newer ./cache/$ProgName -exec g++ cache/$ProgName.tmp.cpp -o cache/$ProgName \;
else
  g++ cache/$ProgName.tmp.cpp -o cache/$ProgName
fi

# Lösche die Sourcecode Datei ohne Shebang
rm cache/$ProgName.tmp.cpp

# Zwischengespeichertes C++ Programm ausführen
cache/$ProgName
Grüße
Alexander

Benutzeravatar
TRex
Moderator
Beiträge: 8071
Registriert: 23.11.2006 12:23:54
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: KA

Re: C++ - Interpreter ;-)

Beitrag von TRex » 11.07.2012 19:43:10

Netter Versuch, aber ich glaube, dass du damit nicht weit kommst, wenn du externe libs im Code hast..oder einfach mehr als eine cpp..
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

alexander_ro
Beiträge: 298
Registriert: 16.01.2006 17:44:21
Lizenz eigener Beiträge: GNU General Public License

Re: C++ - Interpreter ;-)

Beitrag von alexander_ro » 11.07.2012 19:57:49

Alles was an Libs zu C++ gehöhrt findet der g++ selber.

Alle anderen kann man ganz leicht in das Shellscript integrieren z.B. über Variablen so ähnlich wie es auch in einem Makefile gemacht wird. Ich sehe da kein großes Problem.

Ich dachte das aber jetzt eher für kleiner Progrämmchen oder um mal schnell was auszuprobieren. Wozu es vielleicht auch interessant ist um Modultests für C++ Klassen damit zu bauen oder Wartungsscripte die mit Klassen aus der Anwendung leichter zu machen sind wiel man die funktionalität nicht nochmal in der Scriptsprache nachbauen muss.

Alexander

cosmac
Beiträge: 4573
Registriert: 28.03.2005 22:24:30

Re: C++ - Interpreter ;-)

Beitrag von cosmac » 11.07.2012 22:16:43

hi,

witzige Idee :cool:

Wenn man die erste Zeile garnicht erst einbaut, muss man sie nicht rausbauen. Evt. geht da was mit misc binaries und Debianbinfmt-support
Beware of programmers who carry screwdrivers.

Antworten