Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit qmake
Hallo Leute,
ich habe ein Problem mit qmake bzw. dem erstellten makefile.
Ich habe den Quellcode für ein Programm heruntergeladen. In der Anleitung heißt es: Run "qmake -o Makefile RA_GUI.pro". Run "make".
Genau das habe ich gemacht. Die Fehlermeldung lautet:
Makefile:59 *** missing separator. Stop.
Was bedeutet das, und was kann ich nun machen?
Ich arbeite übrigens unter Windows 98. Es waren auch irgendwelche Perl-Skripte dabei, aber damit kenne ich mich gar nicht aus. Kann man die überhaupt unter Windows laufen lassen?
Schöne Grüße,
anda_skoa
15-10-2005, 15:59
nmake statt make aufrufen.
Ciao,
_
Hallo anda_skoa,
nmake gibt es irgendwie nicht. Wie hängt denn das Ganze überhaupt zusammen? Gehören nmake, qmake und make zu Visual C++? Ich weiß nämlich gar nicht mehr, woher ich das alles habe. :o
Wo bekomme ich nmake her? Oder muss ich nur einen Pfad eintragen?
Das Ganze mache ich doch unter der MS-DOS-Eingabeaufforderung, oder?
Schöne Grüße,
anda_skoa
15-10-2005, 16:34
nmake gibt es irgendwie nicht. Wie hängt denn das Ganze überhaupt zusammen? Gehören nmake, qmake und make zu Visual C++? Ich weiß nämlich gar nicht mehr, woher ich das alles habe. :o
qmake gehört zu Qt, make gibt es normaleweise auf einem leeren Windowssystem nicht und nmake gehört zu Microsofts Commandline Compiler Paket, wo auch der Compiler cl.exe drinnen ist.
Wird vermutlich mit Visual C++ mitinstalliert.
Könnte sein, daß das betroffene Verzeichnis nicht im Pfad ist
Das Ganze mache ich doch unter der MS-DOS-Eingabeaufforderung, oder?
Ja, korrekt.
Da der qmake Aufruf geklappt hat, scheint QMAKESPEC gesetzt zu sein, ich muß das immer händisch setzen (auf win32-msvc für cl)
Ciao,
_
peschmae
15-10-2005, 16:34
QMake gehört zu Qt und erstellst dir das Makefile.
nmake gehört zu Visual Studio und macht das was im Makefile steht (kompilieren). Das liegt irgendwo in so nem Ordner von MSVC - musst halt den dem PATH hinzufügen oder den absoluten Pfad eingeben damit er nmake findet.
MfG Peschmä
Hallo anda_skoa, hallo Peschmä,
danke für die Erklärungen. Ich habe den Pfad eingetragen. nmake läuft jetzt. Allerdings bekomme ich beim Compilieren Fehlermeldungen. Zuerst fehlte eine dll. Die habe ich gefunden und einfach mit in den Ordner kopiert. Dann konnte die Header-Datei "unistd.h" nicht gefunden werde. Die habe ich dann im gnu-Compiler gefunden und auch kopiert. Die braucht wiederum io.h. Wenn ich diese auch kopiere, bekomme ich folgende Fehlermeldung:
cl -c -nologo -Zm200 -W3 -MD -O1 -GX -DUNICODE -DQT_DLL -DQT_THREAD_SUPPORT -DQT_NO_DEBUG -I"." -I"C:\QT\32~1.1NO\include" -I"" -I"C:\Programm\RATools\gui" -I"C:\QT\32~1.1NO\mkspecs\win32-msvc" -Fo @C:\WINDOWS\TEMP\nma92979.
RA_GUI.cpp
.\io.h(191) : error C2629: 'int (' unerwartet
.\io.h(223) : warning C4273: '_unlink' : Inkonsistente DLL-Bindung. dllexport angenommen.
.\io.h(260) : warning C4273: 'fileno' : Inkonsistente DLL-Bindung. dllexport angenommen.
.\io.h(268) : warning C4273: 'unlink' : Inkonsistente DLL-Bindung. dllexport angenommen.
.\RA_Pipeline.h(105) : error C2065: 'symlink' : nichtdeklarierter Bezeichner
Nun weiß ich gar nicht mehr weiter.
Übrigens: das ui-File war eigentlich zu neu: 3.3 statt 3.2. Ich habe es einfach umgeändert, weil die Oberfläche so simpel ist, dass 3.2 auch ausreichen müsste. Der Fehler dürfte also nicht davon abhängen. Ich denke, die GUI wird richtig kompiliert, nur das eigentliche Programm nicht.
Schöne Grüße,
peschmae
15-10-2005, 18:35
Statt includes kopieren besser die Pfade im .pro-File hinzufügen und so:
INCLUDEPATH += foo
Zum Rest: Keine Ahnung, ich hab wenn schon QtWin/Free (http://qtwin.sourceforge.net/) verwendet und nicht Trolltechs offizielles Qt-NonCommercial.
MfG Peschmä
anda_skoa
15-10-2005, 18:40
Zuerst fehlte eine dll. Die habe ich gefunden und einfach mit in den Ordner kopiert.
Das kann man im Normalfall auch im .pro File eintragen.
Dann konnte die Header-Datei "unistd.h" nicht gefunden werde. Die habe ich dann im gnu-Compiler gefunden und auch kopiert. Die braucht wiederum io.h.
Das könnten POSIX Header sein, also unter Windows nur in Verbindung mit einer POSiX Umgebung funktionieren.
Falls das der Fall ist, müßte man für die verwendeten Funktionen die entsprechenden Funktion aus der WinAPI ermitteln und stattdessen einbauen, bzw. über bedingte Kompilierung.
.\RA_Pipeline.h(105) : error C2065: 'symlink' : nichtdeklarierter Bezeichner
Symlinks werden AFAIK von keinen Filesystem unter Windows unterstützt.
Übrigens: das ui-File war eigentlich zu neu: 3.3 statt 3.2. Ich habe es einfach umgeändert, weil die Oberfläche so simpel ist, dass 3.2 auch ausreichen müsste.
Das ist meiner Erfahrung nach egal, d.h. man kann da auch händisch 3.1 eintragen, geht immer noch.
Der Fehler dürfte also nicht davon abhängen. Ich denke, die GUI wird richtig kompiliert, nur das eigentliche Programm nicht.
Vermutlich wurde das Programm für eine POSIX kompatible Plattform geschrieben, also alles außer Windows.
Leider hat Microsoft in seinem Bestreben die Entwickler an seine Plattform zu binden, das Portieren von POSIX Code so schwer wie möglich gemacht.
Etwas das man als Entwickler unter Windows oder als Entwickler plattformübergreifender Software leider hinnehmen und darum herum arbeiten muß.
Falls die Header in der Windows Portierung des GNU Compilers enthalten waren, könnest du das Programm statt mit dem MSVC Compiler mit diesem übersetzen.
Dann könnte es im besten Falle ohne Änderung ablaufen.
Ciao,
_
Hallo anda_skoa,
ich habe jetzt mal versucht, nur das Programm ohne die GUI zu kompilieren. Da bekomme ich die Fehlermeldung, dass es tiffio.h nicht gibt. Ich habe im Internet ein bisschen danach gesucht, aber nicht wirklich was gefunden. Irgendwie hat das was mit Graphik zu tun, aber ich weiß nicht, wo ich es herbekomme und ob es dann auch für Windows ist.
Weißt du was dazu?
Schöne Grüße,
Kirstin
peschmae
16-10-2005, 10:08
Das tiffio.h Dings gehört zu libtiff: http://www.remotesensing.org/libtiff/
Davon gibts auch Windows-Binaries und so.
MfG Peschmä
Hallo Peschmä,
ich habe mir jetzt GnuWin32 heruntergeladen. Da ist tiffio.h mit dabei. Die Datei wird allerdings nicht gefunden. Wie gebe ich den Pfad zu dieser Datei beim Kompilieren an? Ich habe den Pfad von GnuWin32 in die Autoexec.bat geschrieben, aber es klappt nicht. Ich bekomme immer noch die Fehlermeldung. Oder muss ich irgendwie eine dll erstellen?
Über die von dir genannte Seite komme ich auf eine andere, auf der es einen Unterpunkt "Building the Software under Windows 95/98/NT/2000 with MS VC++"
Muss ich das machen? Ich verstehe das Ganze nicht. Ich weiß einfach nicht, wie die Zusammenhänge sind. :confused:
Schöne Grüße,
Kirstin
anda_skoa
16-10-2005, 12:28
ich habe mir jetzt GnuWin32 heruntergeladen. Da ist tiffio.h mit dabei. Die Datei wird allerdings nicht gefunden. Wie gebe ich den Pfad zu dieser Datei beim Kompilieren an?
Zum Beispiel in INCLUDEPATH im .pro File.
Aber besser du kontrollierts vorher, daß die QMAKESPEC richtig gesetzt hast.
win32-g++ wenn ich mich nicht irre.
Über die von dir genannte Seite komme ich auf eine andere, auf der es einen Unterpunkt "Building the Software under Windows 95/98/NT/2000 with MS VC++"
Muss ich das machen? Ich verstehe das Ganze nicht. Ich weiß einfach nicht, wie die Zusammenhänge sind. :confused:
Das ist für den Fall, daß du weiter MSVC++ als Compiler benutzen willst.
Ciao,
_
Hallo anda_skoa,
bei mir steht Folgendes in der Autoexec.bat:
set QMAKESPEC=win32-msvc
Ist das falsch? Soll ich stattdessen "win32-g++" eintragen? Geht dann Visual C++ noch?
Schöne Grüße,
anda_skoa
18-10-2005, 14:22
QMAKESPEC gibt qmake an, für welchen Compiler er das Makefile erstellen soll.
Wenn du ein Makefile für cl und nmake haben willst, ist win32-msvc richtig, wenn du ein Makefile für g++ habe willst, ist win32-g++ richtig.
Ciao,
_
undefined
18-10-2005, 15:45
Hallo Peschmä,
ich habe mir jetzt GnuWin32 heruntergeladen. Da ist tiffio.h mit dabei. Die Datei wird allerdings nicht gefunden. Wie gebe ich den Pfad zu dieser Datei beim Kompilieren an? Ich habe den Pfad von GnuWin32 in die Autoexec.bat geschrieben, aber es klappt nicht. Ich bekomme immer noch die Fehlermeldung. Oder muss ich irgendwie eine dll erstellen?
Über die von dir genannte Seite komme ich auf eine andere, auf der es einen Unterpunkt "Building the Software under Windows 95/98/NT/2000 with MS VC++"
Muss ich das machen? Ich verstehe das Ganze nicht. Ich weiß einfach nicht, wie die Zusammenhänge sind. :confused:
Schöne Grüße,
Kirstin
Ich weiss jetzt nicht mehr wie es unter Win98 gewesen ist aber für normal kannst du die Umgebungsvariablen Einstellen.
Rechte Maustaste auf Desktop und Eigenschaften - dort die Option Umgebungs-Variablen suchen - QT trägt sich dort selbst ein. Du kannst weiter Pfade getrennt mit Semicolon hinzufügen und danach neu Booten ;)
mfg undefined
Hallo anda_skoa, hallo undefined,
ich habe jetzt win32-g++ eingetragen. Nun meckert der Compiler, dass "symlink" unbekannt ist. Ist win32-g++ eigentlich für MinGW oder für GnuWin32? Ich muss irgendwie tiff miteinbinden.
Bei Windows 98 kann ich unter Eigenschaften die Option "Umgebungs-Variablen" nicht finden.
Schöne Grüße,
Kirstin
anda_skoa
18-10-2005, 17:10
ich habe jetzt win32-g++ eingetragen. Nun meckert der Compiler, dass "symlink" unbekannt ist.
symlink ist vermutlich unter Windows nicht implementierbar.
Ist win32-g++ eigentlich für MinGW oder für GnuWin32?
Dürfte beide Male der selbe Compiler sein.
Ich muss irgendwie tiff miteinbinden.
Dazu mußt du die tiff Bibliothek libtiff kompilieren oder eine fertig kompilierte Version installieren und den Pfad zu den Header in INCLUDEPATH eintragen und die lib in LIBS
Ciao,
_
Hallo anda_skoa,
ich habe im Internet noch etwas herumgesucht und gefunden, dass cygwin angeblich mit symlinks klarkommt. Ist das wieder ein anderer Compiler oder der gleiche wie MinGW?
Schöne Grüße,
peschmae
18-10-2005, 21:59
Ist beides GCC.
Aber Cygwin hat recht viel mehr ballast dabei - d.h. die Programme merken weniger dass sie gar nicht auf einem Unix laufen.
Für (reine) Qt Programme ist aber tendentiell MinGW die schlauere Lösung.
Gnuwin32 hat insofern was mit MinGW zu tun als dass das eine Sammlung von Gnu Programmen ist die für Win32 mit dem MinGW Gcc kompiliert wurde.
MfG Peschmä
Hallo Peschmä,
dann könnte es also sein, dass Cygwin mit symlinks klarkommt und MinGW nicht, oder?
Schöne Grüße,
peschmae
19-10-2005, 09:17
Ja. Cygwin hat ne ganze so Unix-Umgebung inkl bash und Verzeichnis-Mapping und so. Symlinks gibts dort auch.
MfG Peschmä
Hallo Leute,
cygwin hat das Rennen gemacht. Damit habe ich es hinbekommen. Für cygwin gibt es auch tiff und qt. Das Problem mit den symlinks wurde auch gelöst. Ich habe jetzt alles kompiliert.
Schöne Grüße,
Kirstin
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.