[gelöst] Probleme beim Ausführen von Make
Verfasst: 12. Oktober 2007 17:35
Hallo Leute,
also ich arbeite derzeit an einer Batch-Datei, die mir das Leben mit QT-Projekten einfacher macht.
Mit Hilfe der Batchdatei kann ich Projekt-Ordner erstellen, und wenn Projekt-Daten darin vorhanden sind, diese kompilieren.
dazu wird einmal pro Projekt qmake -project und anschließend qmake aufgerufen.
Danach wird jedesmal nur make gestartet, um die veräderten Cpp-Dateien zu kompilieren.
Mein problem ist nun, dass nach dem ich make aufgerufen habe keine weiteren Befehle mehr von der Batch-Datei ausgeführt werden. Ich weiß nicht, ob make irgendwelche 'komischen' returncodes abliefert, so dass die Batch unterbrochen wird.
Habt ihr da eine idee??
Kennt das Problem jemand??
Nachfolgend der Code der Batchdatei:
Alles nach der Zeile "make" wird nicht mehr ausgeführt. Also es erscheint keine Ausgabe 'Fertig!' auf dem Bildschirm...
Hat jemand eine Ahnung, woran das liegen kann?
mfg
Christian
also ich arbeite derzeit an einer Batch-Datei, die mir das Leben mit QT-Projekten einfacher macht.
Mit Hilfe der Batchdatei kann ich Projekt-Ordner erstellen, und wenn Projekt-Daten darin vorhanden sind, diese kompilieren.
dazu wird einmal pro Projekt qmake -project und anschließend qmake aufgerufen.
Danach wird jedesmal nur make gestartet, um die veräderten Cpp-Dateien zu kompilieren.
Mein problem ist nun, dass nach dem ich make aufgerufen habe keine weiteren Befehle mehr von der Batch-Datei ausgeführt werden. Ich weiß nicht, ob make irgendwelche 'komischen' returncodes abliefert, so dass die Batch unterbrochen wird.
Habt ihr da eine idee??
Kennt das Problem jemand??
Nachfolgend der Code der Batchdatei:
Code: Alles auswählen
REM Batch-Datei zum Kompilieren eines QT-Projektes mittels installiertem QT und MinGW
REM @author: Christian Flämig
REM @date: 2007-10-12
@echo off
REM Path-Variablen zum Ausführen von qmake und make setzen
set QTDIR=\Qt\4.3.2
set PATH=\Qt\4.3.2\bin
set PATH=%PATH%;\MinGW\bin
set PATH=%PATH%;%SystemRoot%\System32
set QMAKESPEC=win32-g++
REM Überprüfen, ob ein Parameter übergeben wurde
if %1.==. GOTO :NO_INTRO
CLS
echo.
echo.
echo Build-Batch zum kompilieren eines QT-Programms
echo ----------------------------------------------
echo.
echo Aufruf:
echo "QT_build" - Kompiliert QT-Projekt in diesem Verzeichnis.
echo "QT_build Name" - Kompiliert QT-Projekt im Unterverzeichnis 'Name'.
echo Erzeugt Verzeichnis 'Name', falls nicht vorhanden.
echo.
echo Setting up a MinGW/Qt only environment...
echo -- QTDIR set to \Qt\4.3.2
echo -- PATH set to \Qt\4.3.2\bin
echo -- Adding \MinGW\bin to PATH
echo -- Adding %SystemRoot%\System32 to PATH
echo -- QMAKESPEC set to win32-g++
:NO_INTRO
echo.
REM Wenn kein Parameter übergeben wurde, nimmt die Batch an, dass sie im
REM Quellcode-Verzeichnis liegt. Ansonsten erzeugt sie das Quellcode-Verzeichnis
if %2.==. GOTO :CORRECT_DIR_NAME
echo.
echo ---------------------------------------------
echo Warnung!
echo Projektverzeichnis darf keine Leerzeichen enthalten!
GOTO :DIR_ERROR_END
:CORRECT_DIR_NAME
if %1.==. GOTO :BEGINN
if exist %1 GOTO :COPY_BUILD
echo ---------------------------------------------
echo Erzeuge das Verzeichnis %1
echo.
mkdir %1
GOTO :END
REM Kopiert sich selbst in das Quellcode-Verzeichnis
:COPY_BUILD
if exist %1\QT_build.bat GOTO :CD
echo ---------------------------------------------
echo Kopiere QT_build.bat in %1
echo.
copy QT_build.bat %1\QT_build.bat
REM wechselt in das Quellcode-Verzeichnis und ruft sich selbst ohne Parameter auf
:CD
echo ---------------------------------------------
echo Wechsle in %1
echo.
cd %1
echo ---------------------------------------------
echo Starte QT_Build.bat
echo.
QT_build.bat
GOTO :END
:BEGINN
if exist qmake_project.tmp GOTO :QMAKE
echo ---------------------------------------------
echo Starte qmake -project...
qmake -project
echo.
echo.>qmake_project.tmp
:QMAKE
if exist qmake.tmp GOTO :CHECK_DIR
echo ---------------------------------------------
echo Starte qmake...
qmake
echo.
echo.>qmake.tmp
:CHECK_DIR
if exist %cd%\release GOTO :MINGW10
echo ---------------------------------------------
echo qmake hat kein Output-Verzeichnis erzeugt.
echo Bitte die Quelldateien ueberpruefen!
GOTO :END
:MINGW10
if exist release\mingwm10.dll GOTO :QTCORE4
echo ---------------------------------------------
echo Kopiere mingwm10.dll in release-Pfad...
copy \Qt\4.3.2\bin\mingwm10.dll release\mingwm10.dll
:QTCORE4
if exist release\QtCore4.dll GOTO :QTGUI4
echo ---------------------------------------------
echo Kopiere QtCore4.dll in release-Pfad...
copy \Qt\4.3.2\bin\QtCore4.dll release\QtCore4.dll
:QTGUI4
if exist release\QtGui4.dll GOTO :MAKE
echo ---------------------------------------------
echo Kopiere QtGui4.dll in release-Pfad...
copy \Qt\4.3.2\bin\QtGui4.dll release\QtGui4.dll
:MAKE
echo ---------------------------------------------
echo make...
echo.
make
echo ---------------------------------------------
echo Fertig!
dir release\*.exe /B >> dir.tmp
SET /p exe=<dir.tmp
DEL dir.tmp
echo datei: %exe%
GOTO :END
:END
if %1.==. cd ..
:DIR_ERROR_END
Alles nach der Zeile "make" wird nicht mehr ausgeführt. Also es erscheint keine Ausgabe 'Fertig!' auf dem Bildschirm...
Hat jemand eine Ahnung, woran das liegen kann?
mfg
Christian