2016-11-29 2 views
0

Ich möchte ein Skript machen, das kompilieren Dinge schneller zum Schreiben machen würde. Ich möchte eine XYZ.cpp Datei kompilieren und die Ausgabe soll XYZ.out sein.Skript zum Kompilieren von C++

Hier ist mein Skript:

#!/bin/bash 

# getting the part before .cpp 
var1=`echo "$1" | cut -d"." -f1` 

# compile 
g++ -std=c++11 -Wall -pedantic -Wno-long-long "$1" -o "$var1.out" -lm 

ich es laufen: ccc program.cpp

Das Skript läuft, aber der Ausgang ist noch a.out. Was mache ich falsch?

+0

Wenn Sie den Wert von '$ var1' widerhallen, was ist das? –

+0

Führen Sie das Skript mit 'xtrace' aus, zum Beispiel:' bash -x ccc program.cpp'. Das wird alle Erweiterungen zeigen und verdeutlichen, was passiert. – cdarke

Antwort

0

Nur eine von bash's built-in parameter expansion features verwenden jeden hinteren Abschnitt von $1 zu entfernen, die „CPP“ paßt:

#!/bin/bash 
g++ -std=c++11 -Wall -pedantic -Wno-long-long -o "${1%%.cpp}.out" -lm "$1" 

Ich habe auch die Quelldatei bewegte der letzte Parameter sein, um g ++, so dass es klar ist, wo die Optionen sind (und enden).