VS 2005 Express mit Qt

Dein Thema passt einfach in kein Forum? Dann probiers mal hier.
Antworten
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

VS 2005 Express mit Qt

Beitrag von BartSimpson »

Ich hatte das heute mal versucht mir dem Patch acs4qt41p2.zip.
Nur leider kann ich damit keine Programme übersetzten:(
Die installation hatte prima geklappt. Nur baut qmake keine brauchbaren Makefiles.:(
Siehe dieses Beispiels:

Code: Alles auswählen

#############################################################################
# Makefile for building: Lagerverwaltung
# Generated by qmake (2.00a) (Qt 4.1.0) on: Mi 11. Jan 14:36:36 2006
# Project:  Lagerverwaltung.pro
# Template: app
#############################################################################

####### Compiler, tools and options

CC            = gcc
CXX           = g++
LEX           = flex
YACC          = byacc
DEFINES       = -DUNICODE -DQT_LARGEFILE_SUPPORT -DMEINDEBUG -DQT_DLL -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT
CFLAGS        = -O2 -O2 -Wall $(DEFINES)
CXXFLAGS      = -O2 -O2 -frtti -fexceptions -Wall $(DEFINES)
LEXFLAGS      = 
YACCFLAGS     = -d
INCPATH       = -I"C:/c++/Qt/4.1.0MS/include/QtCore" -I"C:/c++/Qt/4.1.0MS/include/QtGui" -I"C:/c++/Qt/4.1.0MS/include/QtSql" -I"C:/c++/Qt/4.1.0MS/include" -I"Quellen\Datentypen" -I"C:/c++/Qt/4.1.0MS/include/ActiveQt" -I"tmp\moc" -I"tmp\ui_header" -I"C:/c++/Qt/4.1.0MS/mkspecs/win32-g++"
LINK        =        g++
LFLAGS        =        -mthreads -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-s -Wl,-s -Wl,-subsystem,console
LIBS        =        -L"C:\c++\Qt\4.1.0MS\lib" tmp\obj\Windows.o -lQtSql4 -lQtGui4 -lQtCore4
QMAKE         = qmake
IDC           = C:\c++\Qt\4.1.0MS\bin\idc.exe
IDL           = midl
ZIP           = zip -r -9
DEF_FILE      = 
RES_FILE      = tmp\obj\Windows.o
COPY          = copy /y
COPY_FILE     = $(COPY)
COPY_DIR      = xcopy /s /q /y /i
DEL_FILE      = del
DEL_DIR       = rmdir
MOVE          = move
CHK_DIR_EXISTS= if not exist
MKDIR         = mkdir
INSTALL_FILE  = $(COPY_FILE)
INSTALL_DIR   = $(COPY_DIR)

####### Output directory
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

Beitrag von BartSimpson »

So nach dem setzten von QMAKESPEC=win32-msvc2005 erhält man brauchbare Makefiles.:) Nur leider scheint der MS Compiler mit einigen Präprozessorbefehlen nicht zurecht zu kommen:(
Er meckert:
Ungültiger Präprozessorbefehl "warning".
Das steht an der Stelle im Code:

Code: Alles auswählen

#if QT_VERSION < 0x040101
	#warning Alte Qt Version mit Bugs. Umgehung wird benutzt!!!
	Abfrage.prepare("select geloescht from Artikel where Artikelnummer="+QString("%1").arg(artikelnummer));
#else
	Abfrage.prepare("call ArtikelNichtGeloescht(?)");
	Abfrage.bindValue(0,artikelnummer);
#endif	
mit dem gcc klappt das unter Linux und Windows prima.
Wie soll ich das schreiben, das es mit dem gcc und dem Compiler von MS geht?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

#warning ist eine gcc-extension - deshalb geht das nicht.
Dafür gibt es keine gute Lösung. Bei kde packe ich es immer in #ifdef __GNUC__ damit msvc sich nicht beschwert.

Das mit msvc2005 ist jetzt neu, aber so auch besser für mich ;)
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

Beitrag von BartSimpson »

ui das wird denn eine komplizierte Konstruktion:)
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

Beitrag von BartSimpson »

So das übersetzten geht jetzt. Nur das linken klappt nicht, wenn man Qt Resourcen benutzt:(
Da erhhalte ich jetzt den Fehler:

Code: Alles auswählen

        link /LIBPATH:"C:\c++\Qt\4.1.0MS\lib" /NOLOGO /SUBSYSTEM:CONSOLE /incremental:no /OUT:"relea
se\Lagerverwaltung.exe" @d:\temp\nm26D.tmp
LINK : fatal error LNK1181: Eingabedatei "tmp\obj\qrc_Inhalte.obj" kann nicht geöffnet werden.
NMAKE : fatal error U1077: ""C:\Programme\Microsoft Visual Studio 8\VC\BIN\link.EXE"": Rückgabe-Code
 "0x49d"
Stop.
NMAKE : fatal error U1077: ""C:\Programme\Microsoft Visual Studio 8\VC\BIN\nmake.exe"": Rückgabe-Cod
e "0x2"
Stop.
Denn die Datei wird überhaupt nicht erzeugt:(
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

assistant oder designer benutzen auch qt-resourcen und da funktioniert es - was ist bei Dir anders?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

Beitrag von BartSimpson »

wenn ich das wüste:(
Unter Linux und Windows klappt das mit dem gcc. Nur unter Windows mit dem Patch geht es denn auf einmal nicht mehr:(
Würde es helfen, wenn ich Datein schicke? wenn ja welche.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Wenn es geht, alles ;-)
Das Makefile und die pro-Datei könnten aber evtl. reichen. Und noch die resourcendatei.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

Beitrag von BartSimpson »

So hier die Makefiles, .pro und die Resourcendatei.
Der Resourcencompiler erstellt die cpp Datei. Nur irgenwie wird die nicht übersetzt, so das der Linker am Schuss streikt.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Ich weiss woran es lag - Du hast die RCC_DIR umgbogen und ich beachte das an einer (wichtigen) Stelle nicht.
qt-4/qmake/generators/win32/msvc_nmake.cpp:183 sollte ungefähr so aussehen:

Code: Alles auswählen

QString directories[] = { QString( "MOC_DIR" ), QString( "UI_SOURCES_DIR" ), QString( "UI_DIR" ), QString( "RCC_DIR" ), QString::null };
Es fehlte dort 'QString("RCC_DIR")

Werde es heute abend im CVS korrigieren und beim nächsten Patch ist es dann offiziell mit drin.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

Beitrag von BartSimpson »

Gut gut. Denn nur durch gefunden Fehler wird die Sache besser:)
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Oh - das ist zwar korrigiert nur gibts noch keinen neuen Patch. Werde ich im Laufe der Woche nachholen.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten