qmake unter Linux ignoriert Defines

Verschiedenes zu Qt
Antworten
Troll.Soft
Beiträge: 190
Registriert: 18. Juni 2008 09:52
Wohnort: Hamburg

qmake unter Linux ignoriert Defines

Beitrag 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
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag 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
}
pfid
Beiträge: 535
Registriert: 22. Februar 2008 16:59

Beitrag 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.
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag 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...)
Troll.Soft
Beiträge: 190
Registriert: 18. Juni 2008 09:52
Wohnort: Hamburg

Beitrag 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
Troll.Soft
Beiträge: 190
Registriert: 18. Juni 2008 09:52
Wohnort: Hamburg

script ok

Beitrag 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
Antworten