Pourquoi ne pas Qt Creator trouverez les en-têtes dans les chemins d'accès inclus - bien que qmake est en mesure de les trouver

J'ai rejoint un déjà existant (opensource-) Qt 4 projet pour ajouter certaines fonctionnalités. Le projet se compile et fonctionne parfaitement sur Linux Slackware avec Qt 4.8.5. Comme IDE j'ai d'abord utilisé KDevelop (livré avec Slackware), mais Qt fichiers de projet ne sont pas pris en charge dans KDevelop (car il utilise principalement cmake, j'ai dû utiliser le makefile pour importer le projet). Maintenant je veux passer à Qt Creator, mais les fichiers d'en-têtes inclus (relative) les chemins ne sont pas reconnus. Par exemple, le fichier de projet est en "dir0/programmes/prog1/prog1.pro" et les en-têtes sont "dir0/gui/extra.h". "dir0/gui" est ajouté au chemin de recherche par la ligne INCLUDEPATH += ../../gui dans le fichier de projet. Si je survolez #include "extra.h" dans un .h fichier du projet, j'ai toujours été un popup disant "supplémentaire.h: No such file or directory".

Dans KDevelop, il n'y avait pas de problème et aussi qmake qu'il obtient. Quel est le problème du Créateur (je suis à l'aide de 2,8, et j'ai aussi essayé 3.0)

Toute aide grandement appréciée 🙂

Konrad


EDIT: je viens de réaliser, que l'ensemble du framework Qt n'est pas reconnu par qt-creator. Quand je tape #include " les en-têtes suggéré par l'auto-complétion sont tous situés dans le répertoire "/usr/include" ou le répertoire du projet. Par exemple, je peut même pas faire #include <QtGui>.

quel pourrait être le problème ici?


EDIT2: Le fichier de projet comprend également l'interface graphique.pri et locales.pri qui sont utilisés par plusieurs autres projets. J'ai essayé de compresser les fichiers un peu - il encore se compile sans problèmes.

réelle fichier de projet qui se trouve dans "dir0/programmes/us_convert"

include( ../../gui.pri )
QT           += xml

TARGET        = us_convert

HEADERS       = us_convert_gui.h       \
                us_convert.h           \
                us_convertio.h         \
                us_experiment.h        \
                us_experiment_gui.h    \
                us_selectbox.h         \
                us_intensity.h         \
                us_get_dbrun.h         \
                us_mwl_data.h

SOURCES       = us_convert_gui.cpp     \
                us_convert.cpp         \
                us_convertio.cpp       \
                us_experiment.cpp      \
                us_experiment_gui.cpp  \
                us_selectbox.cpp       \
                us_intensity.cpp       \
                us_get_dbrun.cpp       \
                us_mwl_data.cpp

gui.pri situé dans "dir0/"

# Profile include file for applications

!include( local.pri ) error( "local.pri is missing.  Copy from local.pri.template and update variables as appropriate" )

TEMPLATE     = app
DESTDIR      = ../../bin
MOC_DIR      = ./moc
OBJECTS_DIR  = ./obj
VER          = 10

CONFIG       += $$DEBUGORRELEASE qt thread warn

unix {
  LIBS       += -L../../lib -lus_gui -lus_utils
  LIBS       += -lcrypto
  LIBS       += -lqwtplot3d-qt4 -lGLU
  LIBS       += -L$$MYSQLDIR -lmysqlclient
  DEFINES    += INTEL LINUX

  INCLUDEPATH  += $$MYSQLPATH ../../$$QWT3D/include
  INCLUDEPATH  += ../../gui ../../utils $$QWTPATH/include ..
}

Et locales.pri, également situé dans "dir0/"

DEBUGORRELEASE += debug 

unix {

  MYSQLPATH   = /usr/include/mysql/
  QWTPATH     = /usr/local/qwt-5.2.2
  SINGLEDIR   = /usr/lib/qt/qt-solutions/qtsingleapplication/src
  MYSQLDIR    = /usr/include/mysql
  QWT3D = /qwtplot3d-qt4/
  LIBS        += -L/usr/local/qwt-5.2.2/lib -lqwt

}
Avez-vous inclus explicitement le fichier d'en-tête également la .fichier pro?
non, seul le INCLUDEPATH
Vous devez inclure le fichier. Voir ma réponse.
Après beaucoup de casse-tête, j'ai été en mesure de résoudre un problème similaire en modifiant le INCLUDEPATH déclaration dans le fichier de projet. Les chemins d'accès relatifs que j'utilisais pour les fichiers d'en-tête dans mes fichiers cpp n'ont pas suivi ceux que j'ai énumérés dans INCLUDEPATH (j'ai eu un trop grand nombre de '../').

OriginalL'auteur user3122343 | 2013-12-20