Seite 1 von 1

qmake unter Linux ignoriert Defines

Verfasst: 24. Juni 2008 13:03
von Troll.Soft
Hallo,
ich habe folgendes Problem. Ein Project wird von Windows nach MinGW und weiter nach Linux portiert. Für jedes System gibt es eine eigenes .pro file.

#DEFINES += WINDOWS
wird ordentlich von qmake ausgeführt

#DEFINES += LINUX
unter Linux wird von qmake schlicht ignoriert, also nicht ins makefile geschrieben. Wenn ich es von Hand hineinschreibe ist alles ok.

Wie kann ich den qmake überreden auch unter Linux ordentlich zu arbeiten?

Danke im Voraus
Reinhold

Verfasst: 24. Juni 2008 14:56
von solarix

Code: Alles auswählen

#DEFINES += LINUX 
Das ist eine Kommentarzeile. Richtig ginge das:

Code: Alles auswählen

DEFINES += LINUX 
Für jedes System gibt es eine eigenes .pro file.
Warum? Ganz genau dafuer existieren fertige Mechanismen..

Code: Alles auswählen

unix {
  DEFINES += UNIX
}
win32 {
  DEFINES += WINDOWS
}

# oder Compiler-spezifisch:
linux-g++ {
  DEFINES += LINUX
}

Verfasst: 25. Juni 2008 08:41
von pfid
solarix hat geschrieben:Warum? Ganz genau dafuer existieren fertige Mechanismen..

Code: Alles auswählen

unix {
  DEFINES += UNIX
}
win32 {
  DEFINES += WINDOWS
}

# oder Compiler-spezifisch:
linux-g++ {
  DEFINES += LINUX
}
Das würde doch auch mit

Code: Alles auswählen

win32:DEFINES += foo
unix:DEFINES += bar
gehen, oder? Zumindest mach ich das immer so bei Includes/Libs.

Verfasst: 25. Juni 2008 08:55
von solarix
selbstverständlich... ich hab nur die Block-Schreibweise benutzt, weil ich üblicherweise noch mehr Anweisungen habe als nur die Defines (z.B. andere Libaries usw...)

Verfasst: 25. Juni 2008 14:46
von Troll.Soft
Hallo Solarix,
vielen Dank für die prompte Antwort. Das war ja schneller als der Schall. Habe inzwischen mächtig gewirbelt und meine .pro auf Deinen Vorschlag umgestellt. Alles in Butter. Ein weiterer Fehler ist auch gleich mit verschwunden.

Hallo pfid,
da ich wie Solarix mehrere Zeilen für ein System brauche, habe ich auch die Blockmethode verwendet.

Nun gibt es noch ein seltsames Problem.
Das Erstellen eines 2zeiligen Shellscriptes unter openSuse-11 scheitert.

#!/bin/bash
echo "hallo welt"

macht einfach nichts. Rechte sind gesetzt. Das gleiche Script unter Ubuntu (schnell mal installiert) läuft wunderbar durch.
Hat einer eine Idee?

tschüß
Reinhold

script ok

Verfasst: 25. Juni 2008 15:33
von Troll.Soft
Hallo,
habe eine zweites File unter Suse aufgemacht und schon war alles ok. Das alte Script startet immer noch nicht.
Wurde gekillt.

Wie kann ich diesen Thread als gelöst kennzeichnen ?
tschüß
Reinhold