Nicht einmal QFrame

Verschiedenes zu Qt
Antworten
ChristophHaenel
Beiträge: 17
Registriert: 10. Februar 2011 18:30

Nicht einmal QFrame

Beitrag von ChristophHaenel »

Ich kriegs einfach nicht hin:
Friisch installiertes QT5.2 mit Mingw
#include <QFrame>
No such file or directory
Ich habe mir x-mal die Path-Variable angeschaut...
Bitte um den entscheidenden Tipp
Gruß Christoph
brax
Beiträge: 208
Registriert: 11. Mai 2010 11:22

Re: Nicht einmal QFrame

Beitrag von brax »

Leider fehlen einige wichtige Infos, um die Frage zu 100% zu beantworten (Benutzt Du eine IDE? Wenn ja, welche? Kompilierst Du auf der Kommandozeile? Wenn ja, mit selbst geschriebenen Makefiles oder von qmake generiert?).

Die Path variable ist an der Stelle vollkommen irrelevant, was zählt sind die Include Verzeichnisse, die Du dem Compiler mitteilst. Bei minGw tust Du das mit dem Kommandozeilenargument "-I <Verzeichnis>". Ich sage Dir gleich voraus, dass Du fürs Linken auch noch das "-L <Verzeichnis>" Argument brauchen wirst, solltest Du das wirklich von Hand machen...

Ich gehe mal davon aus, dass Du eine IDE benutzt und, da Du von einem "frisch installiertem" Qt sprichst, nehme ich mal einfach an, dass Du den Qt Creator benutzt. Dem musst Du noch das Qt nennen, dass er benutzen soll. Die verfügbaren Qt Versionen auf Deinem System kannst Du unter Tools->Options->Build&Run->"Qt Versions" verwalten. Für das spezifische Projekt Musst Du unter Projects->"Build Settings" noch auswählen welche der vorhandenen Qt Versionen benutzt werden soll. Das sollte eigentlich auch die Include Verzeichnisse des Compilers richtig setzen (denke ich... ich benutze den Qt Creator nicht).

Eine weitere Möglichkeit bei minGW ist folgende: Die Umgebungsvariable CPLUS_INCLUDE_PATH wird benutzt, um zusätzliche globale Include Verzeichnisse aufzulösen. Wenn Du die zu Deinem Qt/include Verzeichnis setzt, sollte das auch funktionieren. In dem Fall solltest Du auch die Umgebungsvariable LIBRARY_PATH setzen, denn sonst bekommst Du beim Linken nochmal das gleiche Problem... Die Variante mit den Umgebungsvariablen hat allerdings den Nachteiil, dass Du Deine Compilereinstellungen nicht projektabhängig setzen kannst.
ChristophHaenel
Beiträge: 17
Registriert: 10. Februar 2011 18:30

Re: Nicht einmal QFrame

Beitrag von ChristophHaenel »

Hallo brax,
deine umfangreiche Antwort ist sehr entgegenkommend und nützlich. Vielen Dank.

Ich möchte die Antworten nachtragen, die du gestellt hast:

Ja, ich benutze Qt Creator unter Windows8.
Die eingestellte Qt-Version lautet: Qt 5.2.0 MinGW 32bit;
Mein "Projekt" ist ein public-domain Scrabble-Spiel names QUACKLE (sicherlich unter Linux entwickelt, vielleicht auch nie mit dem Qt Creator compiliert)
Ich will es (unter Windows8) eindeutschen bzgl. Literalen und Dateien.
Es besteht aus drei Sub-Projekten mit den Projektfiles quackle.pro, quacker\quacker.pro und quackerio\quackleio.pro

Weiter unten habe ich einige der Eintellungen in diesen Eintrag gepastet.

Mein Problem ist die Anweisung #include <QFrame>
Sie wird mit no such file or directory beantwortet.
Andere #includes werden problemlos kompiliert.
Ist irgendwas QFrame in Qt5.2, z.B. veraltet oder umbenannt ?
Könntest du mal bitte bei dir #include <QFrame> ausführen
Dummerweise öffnet meine "offline Hilfe" nicht.
Danke schon jetzt.
Christopg






"Hauptprojekt":

Unter: Projekte / quacker / Build-Einstellungen /
Shadow-Build : marked
Buildverzeichnis C:\quackle097\build-quackle-Desktop_Qt_5_2_0_MinGW_32bit-Debug
qmake: qmake.exe C:\quackle097\quackle-0.97\quackle.pro -r -spec win32-g++ "CONFIG+=debug" "CONFIG+=declarative_debug" "CONFIG+=qml_debug"
make: mingw32-make.exe in C:\quackle097\build-quackle-Desktop_Qt_5_2_0_MinGW_32bit-Debug

Aus "Systemungebung" :
QTDIR C:\Qt\Qt5.2.0\5.2.0\mingw48_32
PATH C:\Qt\Qt5.2.0\5.2.0\mingw48_32\bin;C:\Qt\Qt5.2.0\Tools\mingw48_32\bin;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files (x86)\Acer Bio Protection\x64;C:\Program Files (x86)\Acer Bio Protection\;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files (x86)\Common Files\Roxio Shared\DLLShared\;C:\Program Files (x86)\Common Files\Roxio Shared\9.0\DLLShared\;C:\Program Files (x86)\Calibre2\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files (x86)\MiKTeX 2.9\miktex\bin\

(*)
Name:
Qt 5.2.0 MinGW 32bit
ABI:
x86-windows-msys-pe-32bit
Quelle:
C:\Qt\Qt5.2.0\5.2.0\mingw48_32
mkspec:
win32-g++
qmake:
C:\Qt\Qt5.2.0\5.2.0\mingw48_32\bin\qmake.exe
Version:
5.2.0
QMAKE_SPEC
win32-g++
QMAKE_VERSION
3.0
QMAKE_XSPEC
win32-g++
QT_HOST_BINS
C:\Qt\Qt5.2.0\5.2.0\mingw48_32\bin
QT_HOST_DATA
C:\Qt\Qt5.2.0\5.2.0\mingw48_32
QT_HOST_LIBS
C:\Qt\Qt5.2.0\5.2.0\mingw48_32\lib
QT_HOST_PREFIX
C:\Qt\Qt5.2.0\5.2.0\mingw48_32
QT_INSTALL_ARCHDATA
C:\Qt\Qt5.2.0\5.2.0\mingw48_32
QT_INSTALL_BINS
C:\Qt\Qt5.2.0\5.2.0\mingw48_32\bin
QT_INSTALL_CONFIGURATION

QT_INSTALL_DATA
C:\Qt\Qt5.2.0\5.2.0\mingw48_32\
QT_INSTALL_DEMOS
C:\Qt\Qt5.2.0\5.2.0\mingw48_32\examples
QT_INSTALL_DOCS
C:\Qt\Qt5.2.0\5.2.0\mingw48_32\doc
QT_INSTALL_EXAMPLES
C:\Qt\Qt5.2.0\5.2.0\mingw48_32\examples
QT_INSTALL_HEADERS
C:\Qt\Qt5.2.0\5.2.0\mingw48_32\include
QT_INSTALL_IMPORTS
C:\Qt\Qt5.2.0\5.2.0\mingw48_32\imports
QT_INSTALL_LIBEXECS
C:\Qt\Qt5.2.0\5.2.0\mingw48_32\libexec
QT_INSTALL_LIBS
C:\Qt\Qt5.2.0\5.2.0\mingw48_32\lib
QT_INSTALL_PLUGINS
C:\Qt\Qt5.2.0\5.2.0\mingw48_32\plugins
QT_INSTALL_PREFIX
C:\Qt\Qt5.2.0\5.2.0\mingw48_32
QT_INSTALL_QML
C:\Qt\Qt5.2.0\5.2.0\mingw48_32\qml
QT_INSTALL_TESTS
C:\Qt\Qt5.2.0\5.2.0\mingw48_32\tests
QT_INSTALL_TRANSLATIONS
C:\Qt\Qt5.2.0\5.2.0\mingw48_32\translations
QT_SYSROOT

QT_VERSION
5.2.0
archer
Beiträge: 306
Registriert: 2. Februar 2006 09:56

Re: Nicht einmal QFrame

Beitrag von archer »

Propier mal die folgende Zeile in deiner *.pro Datei:

Code: Alles auswählen

QT  += widgets
oder

Code: Alles auswählen

greaterThan(QT_MAJOR_VERSION, 4) {
    QT  += widgets
}
Die Widgets sind seit QT5 nicht mehr in gui sondern in widgets.
ChristophHaenel
Beiträge: 17
Registriert: 10. Februar 2011 18:30

Re: Nicht einmal QFrame

Beitrag von ChristophHaenel »

Das war es (*).
Hörst Du den Stein plumpsen ?
Danke sehr.
Gruß Christoph

PS
Ich musste (?) außer der Makefilezeil QT += Widgets noch #include <QtGui> in #include <QtWidgets> verwandeln, aber das war es dann (fürs erste)
Antworten