Seite 1 von 1

MinGW-5.1.3 und QT 4.3.1

Verfasst: 27. September 2007 13:05
von MichaelV
Hallo,
ich möchte das QT Plugin fuer Eclipse mal testen.

ich habe jedoch das Problem, dass ich QT 4.3.1 mit mit dem aktuellen MinGW-5.1.3. nicht kompilieren kann.
was habe ich gemacht:

1. mingw instaliert
2. msys instaliert
3. qt installiert
4. eine batch erstellt

set QTDIR=E:\dev\Qt\4.3.1
set MINGW=E:\dev\MinGW
set MSYS=E:\dev\msys\1.0
set PATH=%QTDIR%\bin;%MINGW%\bin;%MSYS%\bin;%PATH%
set QMAKESPEC=win32-g++
configure
nmake

Wenn ich diese Batch auführe macht es ein bischen, aber bricht dann gleich ab

...
Creating qmake...
g++ -c -oproject.o -O -I. -Igenerators -Igenerators/unix -Igenerators/win32 -Igenerators/mac -IE:\dev\Qt\4.3.1/src/corelib/arch/generic -IE:\dev\
Qt\4.3.1/include -IE:\dev\Qt\4.3.1/include/QtCore -IE:\dev\Qt\4.3.1/include -IE:\dev\Qt\4.3.1/include/QtCore -IE:\dev\Qt\4.3.1/src/corelib/global
-IE:\dev\Qt\4.3.1/include/QtScript -IE:\dev\Qt\4.3.1/mkspecs/win32-g++ -DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_LITE_COMPONENT -DQT_NO_PCRE
-DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -DUNICODE -DHAVE_QCONFIG_CPP -DQT_BUILD_QMAKE -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO
_DATASTREAM -DQMAKE_OPENSOURCE_EDITION project.cpp
process_begin: CreateProcess(NULL, g++ -c -oproject.o -O -I. -Igenerators -Igenerators/unix -Igenerators/win32 -Igenerators/mac -IE:\dev\Qt\4.3.1
/src/corelib/arch/generic -IE:\dev\Qt\4.3.1/include -IE:\dev\Qt\4.3.1/include/QtCore -IE:\dev\Qt\4.3.1/include -IE:\dev\Qt\4.3.1/include/QtCore -
IE:\dev\Qt\4.3.1/src/corelib/global -IE:\dev\Qt\4.3.1/include/QtScript -IE:\dev\Qt\4.3.1/mkspecs/win32-g++ -DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLE
S -DQT_LITE_COMPONENT -DQT_NO_PCRE -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -DUNICODE -DHAVE_QCONFIG_CPP -DQT_BUILD_QMAKE -DQT_NO_THREAD -DQT_NO_Q
OBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM -DQMAKE_OPENSOURCE_EDITION project.cpp, ...) failed.
make (e=2): The system cannot find the file specified.
mingw32-make: *** [project.o] Error 2

kann mir jemand helfen?

danke Michael

2ter versuch

Verfasst: 27. September 2007 13:42
von MichaelV
Hallo,
testweise habe ich mal die qt version inclusive mingw geholt und
installiert, msys deinstalliert, die batch angepasst.
scheinbar ist die version 5.3.1 von mingw nicht kompatibel.
in der w32api.h steht hier eine 3.01
bei der alteren version von trolltech steht hier eine 3.2??
"#define __W32API_VERSION 3.2", welche auch von qt verlangt wird.

batch:
set QTDIR=E:\dev\Qt\4.3.1
set MINGW=E:\dev\MinGW
set PATH=%QTDIR%\bin;%MINGW%\bin;%PATH%
set QMAKESPEC=win32-g++
configure -fast
nmake

dann roedelt er erstmal ewig, findet dann nmake nicht,
(gut nmake ist auch falscxh hier)

sagt dann

Qt is now configured for building. Just run mingw32-make.
To reconfigure, run mingw32-make confclean and configure.

gut, also mingw32-make...

dann macht er:
E:\dev\Qt\4.3.1>mingw32-make
E:/dev/Qt/4.3.1/bin/qmake projects.pro -o Makefile -spec win32-g++
mingw32-make -f Makefile
mingw32-make[1]: Entering directory `E:/dev/Qt/4.3.1'
cd src\winmain\ && mingw32-make -f Makefile
mingw32-make[2]: Entering directory `E:/dev/Qt/4.3.1/src/winmain'
E:/dev/Qt/4.3.1/bin/qmake winmain.pro -o Makefile -spec win32-g++
mingw32-make -f Makefile
mingw32-make[3]: Entering directory `E:/dev/Qt/4.3.1/src/winmain'
mingw32-make -f Makefile.Debug all
Makefile.Debug:116: *** multiple target patterns. Stop.
mingw32-make[4]: Entering directory `E:/dev/Qt/4.3.1/src/winmain'
mingw32-make[4]: Leaving directory `E:/dev/Qt/4.3.1/src/winmain'
mingw32-make[3]: *** [debug-all] Error 2
mingw32-make[3]: Leaving directory `E:/dev/Qt/4.3.1/src/winmain'
mingw32-make[2]: *** [all] Error 2
mingw32-make[2]: Leaving directory `E:/dev/Qt/4.3.1/src/winmain'
mingw32-make[1]: *** [sub-winmain-make_default-ordered] Error 2
mingw32-make[1]: Leaving directory `E:/dev/Qt/4.3.1'
mingw32-make: *** [all] Error 2

was ist da los?

Geht immer noch nicht...

Verfasst: 28. September 2007 09:11
von MichaelV
Hat denn niemand die Version 4.3.1 mit mingw kompiliert?

Danke Michael!

Verfasst: 29. September 2007 13:55
von Christian81
nmake ist das Make-Programm von msvc und nicht von mingw -> mingw32-make.

Des weiteren muss aus den Umgebungsvariablen INCLUDE und LIB die Pfade zu den msvc-Includes raus. Ist ne blöde MSVC6-Angewohnheit diese global zu setzen...

hat geklappt

Verfasst: 1. Oktober 2007 11:48
von MichaelV
Hallo

am nmake hats nicht gelegen siehe post2
"Makefile.Debug:116: *** multiple target patterns. Stop. "

habe den debug stand erzeugen koennen mit
der batch qtvars.bat die beim QT dabei ist.
der trick ist qmake und dass man eine konfiguration angeben muss:

configure -plugin-sql-sqlite -plugin-sql-odbc -qt-libpng -qt-libjpeg
qmake
mingw32-make debug

ebenso muss man scheinbar die include und die lib pfade wegnehmen.

ich habe dann am we ein bischen experimentiert mit qt, eclipse plugin und
mingw. das plugin ist ok, die hilfe auch, aber die mimik mit mingw und dem
debugger hat mich insbesondere bezueglich der geschwindigkeit nicht vom hocker gerissen.
im moment ist das fuer mich keine alternative.

danke trotzdem Michael

Verfasst: 26. Oktober 2007 17:34
von TBerger
configure -plugin-sql-sqlite -plugin-sql-odbc -qt-libpng -qt-libjpeg
qmake
mingw32-make debug
Konnte das schon jemand verifizieren? Ich habe jetzt seit 1 Woche versucht,die QT 4.3.2 Debug Libraries mit MinGW 5.1.3 zu bauen und stoße auf den "multiple target patterns" Fehler. Mttlerweile habe ich das ganze auf 6 (!) unterschiedlichen Rechnern gemacht und auf 4 davon tritt dieser Fehler auf, aber niemand weiß was die Ursache ist. Qt und MinGW Version sind immer die gleichen, genauso Win XP SP2.

Viele Grüße,
Thomas Berger

Verfasst: 28. Oktober 2007 14:12
von Christian81
@TBerger: Meinen Beitrag nicht gelesen?

Verfasst: 29. Oktober 2007 10:22
von TBerger
Hallo Christian,

ja ich habe den Eintrag gelesen, allerdings nicht recht verstanden, was damit gemeint sein soll. Heißt das, dass es Probleme gibt, wenn man zwar mit MinGW baut aber MSVC auf dem Rechner installiert ist? Wo werden denn die variablen INCLUDE und LIB gesetzt? In irgendeinem .pro-File? Denn die qtvars.bat ist ja dafür da, einen bereinigten System-Pfad herzustellen (MinGW/Qt only environment) ...

Mfg,
Thomas

Verfasst: 29. Oktober 2007 10:31
von Christian81
Man sollte schon wissen was Umgebungsvariablen sind.... und wenn nicht -> google!
Gesetzt werden sie global und natürlich nicht in qtvars.bat (wieso auch, sind ja vom msvc installer gesetzt worden)

Verfasst: 29. Oktober 2007 10:45
von TBerger
Natürlich weiß ich was Umgebungsvaribalen sind. Der PATH wird aber durch die qtvars.bat überschrieben, Variablen mit dem Namen INCLUDE oder LIB sind nicht gesetzt, wie man ja leicht durch das SET-Kommando (ohne Parameter) im BatchScript rausfinden kann. Was soll also gemeint sein?

Code: Alles auswählen

ADSKFLEX_LICENSE_FILE=27000@oekaflm1 ;27000@oekaw3flm1
ALLUSERSPROFILE=D:\Documents and Settings\All Users
ANT_HOME=C:\tools\apache-ant-1.7.0
APPDATA=D:\Documents and Settings\TBerger\Application Data
CDS_LIC_FILE=475@oekaw3flm3
CHROND_LICENSE_FILE=1700@oekaw3flm3
CLAM_PATH=C:\tools\CLAM
CommonProgramFiles=C:\Program Files\Common Files
COMPUTERNAME=OEKAP67B
ComSpec=C:\WINNT\system32\cmd.exe
EMALMD_LICENSE_FILE=1800@oekaw3flm3
EXSERVER=OEKAEX01
FP_NO_HOST_CHECK=NO
HOMEDRIVE=C:
HOMEPATH=\
JAVA_HOME=C:\PROGRA~1\Java\jdk1.5.0_09
LM_LICENSE_FILE=27000@oekaflm1 ;28000@oekaflm1 ;27000@oekaw3flm1 ;28000@oekaw3flm1 ;7192@oekaw2do01 ;28000@oekaw3msvm01 ;27000@oekaw3msvm02
LOGIN_CONTEXT=Extern.Karlsbad
LOGONSERVER=\\OEKAW2DC02
MGLS_LICENSE_FILE=27000@oekaw3msvm01
NUMBER_OF_PROCESSORS=2
NWLANGUAGE=English
NWUSERNAME=TBerger
OS=Windows_NT
OS_VERSION=V5.01
Path=C:\tools\Qt\4.3.2\bin;C:\tools\MinGW-5.1.3\bin;C:\WINNT\System32
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PLATFORM=WNT
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 6 Model 15 Stepping 6, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=0f06
ProgramFiles=C:\Program Files
PROMPT=$P$G
QMAKESPEC=win32-g++
QTDIR=C:\tools\Qt\4.3.2
QTJAVA="C:\Program Files\Java\jre1.5.0_07\lib\ext\QTJava.zip"
SESSIONNAME=Console
SystemDrive=C:
SystemRoot=C:\WINNT
TEMP=D:\DOCUME~1\TBerger\LOCALS~1\Temp
TMP=D:\DOCUME~1\TBerger\LOCALS~1\Temp
USERDNSDOMAIN=hbi.ad.harman.com
USERDOMAIN=HBI
USERNAME=TBerger
USERPROFILE=D:\Documents and Settings\TBerger
VS80COMNTOOLS=C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\
VSFLEX_LICENSE_FILE=;
windir=C:\WINNT
WINDOWS_LOGIN=0
WINVER=5.1.2600  Service Pack 2

Deshalb fragte ich ja, ob die varibalen beim configure bzw make gesetzt werden.

Verfasst: 29. Oktober 2007 10:53
von Christian81
Dann waren sie eben während des qmake-Laufs gesetzt -> qmake neu aufrufen damit die Makefiles neu erstellt werden.
Sieht man auch wenn man sich die erzeugte Makefiles mal anschaut (anschauen würde)

Verfasst: 10. Januar 2010 11:19
von ali-g
falsches Forum sorry