Seite 1 von 1

user32.lib no such file or directory

Verfasst: 13. April 2010 14:37
von MQ
Hallo,

ich habe mir das SDK für Qt4.6.2 (mingw) gestern auf WinXP installiert und probiere mich gerade mit einem Beispiel, dem webbrowser aus activeqt.

Aus diversen Hinweisen liest man, dass bevor man im QtCreator dieses Beispiel starten kann, die Libs des ActiveQt-Frameworks noch erstellt werden müssen.

Dennoch erhalte ich beim Versuch das Beispiel zu erstellen, den Hinweis, dass offensichtlich folgende libs nicht gefunden werden:
ole32.lib
oleaut32.lib
user32.lib
gdi32.lib
advapi32.lib

konkret gibt es folgenden Output

...
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-s -mthreads -Wl -Wl,-subsystem,windows -o release\webbrowser.exe tmp/obj/release_shared/main.o -L"c:\Qt462\lib" -L"c:\Qt462\lib" -lmingw32 -lqtmain -Lo:\3_Source\LogBuch\Versuch02\lib -lQAxContainer -lQtGui4 -lQtCore4 ole32.lib oleaut32.lib user32.lib gdi32.lib advapi32.lib c:\Qt462\lib\QtGui4.lib c:\Qt462\lib\QtCore4.lib
mingw32-make[1]: Leaving directory `C:/Qt462/examples/activeqt/webbrowser'
mingw32-make: Leaving directory `C:/Qt462/examples/activeqt/webbrowser'
g++: ole32.lib: No such file or directory
g++: oleaut32.lib: No such file or directory
g++: user32.lib: No such file or directory
g++: gdi32.lib: No such file or directory
g++: advapi32.lib: No such file or directory
mingw32-make[1]: *** [release\webbrowser.exe] Error 1
mingw32-make: *** [release-all] Error 2
Beendet mit Rückgabewert 2.
Fehler beim Erstellen des Projekts webbrowser
Beim Ausführen des Build-Schritts 'Make'

Das sind nun Windows Bibliotheken und ich krieg den gcc, respektive mingw nicht dazu, diese libs zu finden. Sie sind da, ich habe sie inzwischen woanders hin kopiert, doch vergebens. qmake habe ich wie folgt erweitert:

LIBS += -L"o:\3_Source\LogBuch\Versuch02\lib"

Dort liegen die Libs.

Sie werden nicht gefunden.

Was mach ich denn hier falsch? Variationen mit \ oder / und mitohne " habe ich alle schon durch.

Gruß

MQ

Verfasst: 13. April 2010 16:11
von Christian81
Irgendwas ist da durcheinander - .lib sind definitiv keine Import-Libs für MinGW sondern für MSVC...

Verfasst: 13. April 2010 17:18
von MQ
Christian81 hat geschrieben:Irgendwas ist da durcheinander - .lib sind definitiv keine Import-Libs für MinGW sondern für MSVC...
Ja, die Forderung nach den libs kommt nicht von mir. Ich habe zwar parallel VS2008 auf dem Rechner doch zumindest beim QtCreator nix gemischt.

Das muss was damit zu tun haben, dass ich ActiveX nutzen will und das ist ja definitiv Windows-Zeugs.

Wo könnte die Forderung nach den Windows-Bibliotheken denn sonst herkommen? Wie gesagt, ich bearbeite das Beispiel webbrowser des activeqt Frameworks.

MQ

Verfasst: 13. April 2010 22:33
von Christian81
Da ich die pro-Datei nicht kenn und auch nicht weiß welchen mkspec Du verwendest - keine Ahnung. Die Libs gehören definitiv nicht da hin und mit ActiveQt hat das auch nicht zu tun.

Verfasst: 14. April 2010 10:00
von MQ
Christian81 hat geschrieben:Da ich die pro-Datei nicht kenn und auch nicht weiß welchen mkspec Du verwendest - keine Ahnung. Die Libs gehören definitiv nicht da hin und mit ActiveQt hat das auch nicht zu tun.
Ich habe das angesprochene Beispiel gestern noch auf einem nicht MSVC-verseuchten PC ausprobiert und da funzt es prima.

hier mal die *.pro

Code: Alles auswählen

TEMPLATE = app

CONFIG += qaxcontainer

QTDIR_build:REQUIRES = shared

HEADERS  = webaxwidget.h
SOURCES	 = main.cpp
FORMS	 = mainwindow.ui
wincewm*: FORMS = mainwindow_windowsmobile.ui

# install
target.path = $$[QT_INSTALL_EXAMPLES]/activeqt/webbrowser
sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS webbrowser.pro
sources.path = $$[QT_INSTALL_EXAMPLES]/activeqt/webbrowser
INSTALLS += target sources
mkspec? Ich habe einfach den QtCreator (zum ersten mal) mit Qt4.6.2 und MinGW32 auf meinem System installiert. Bisher war/ist Qt4.4.3 aber ohne SDK installiert und verwendet habe ich VS2008. Im QtCreator habe ich einfach das Beispiel geöffnet. Nix weiter konfiguriert oder geändert.

Die Umgebungsvariablen habe ich ebenfalls mal überprüft. Zwar war QTDIR noch auf 4.4.3 und nicht auf 4.6.2 doch nach dem Ändern gab es keine Verbesserung.

Es sieht also so aus, als ob irgendwas vom MSVC in den MinGW reinspukt. Aus den Abhängigkeiten des Quelltextes kann es nicht kommen? Als relevante Umgebungsvariablen ist nur QTDIR gesetzt und zeigt nun auch auf den richtigen Pfad.

Wenn MinGW verwendet wird, müsste mkspec aus mkspec/win32-g++ verwendet werden, oder? Darin finden sich folgende Zeilen:

Code: Alles auswählen

QMAKE_LIBS		=
QMAKE_LIBS_CORE         = -lkernel32 -luser32 -lshell32 -luuid -lole32 -ladvapi32 -lws2_32
QMAKE_LIBS_GUI          = -lgdi32 -lcomdlg32 -loleaut32 -limm32 -lwinmm -lwinspool -lws2_32 -lole32 -luuid -luser32 -ladvapi32
QMAKE_LIBS_NETWORK      = -lws2_32
QMAKE_LIBS_OPENGL       = -lopengl32 -lglu32 -lgdi32 -luser32
QMAKE_LIBS_COMPAT       = -ladvapi32 -lshell32 -lcomdlg32 -luser32 -lgdi32 -lws2_32
QMAKE_LIBS_QT_ENTRY     = -lmingw32 -lqtmain
Also da hätten wir die üblichen Verdächtigen. Also doch die Standardwindowslibs für MinGW?

MQ

Verfasst: 14. April 2010 12:24
von Christian81
QMakeSpec: http://qt.nokia.com/doc/4.6/qmake-envir ... #qmakespec

Bist Du sicher dass nicht das Qt4.4 vom QtCreator benutzt wird?

Die mkspec ist auch richtig.

Verfasst: 14. April 2010 14:54
von MQ
Christian81 hat geschrieben: Bist Du sicher dass nicht das Qt4.4 vom QtCreator benutzt wird?
wo kann ich denn das ablesen?

QTDIR zeigt auf den richtigen Pfad und im Creator unter Einstellungen steht 4.6.2.

Da Qt4.6.2 im Moment so zickt, bin ich auch nicht wirklich bereit, die alte Version von der Platte zu bannen.

MQ