Pourquoi Qt Creator ne trouve pas les en-têtes inclus dans les chemins inclus - même si qmake est capable de les trouver

j'ai rejoint un projet Qt 4 déjà existant (opensource -) pour ajouter des fonctionnalités. Le projet compile et fonctionne parfaitement sous Linux Slackware avec Qt 4.8.5. Comme IDE j'ai utilisé pour la première fois Kdevel (fourni avec Slackware), mais les fichiers de projet Qt ne sont pas pris en charge dans Kdevel (puisqu'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ête dans les chemins inclus (relatif-) ne sont pas reconnus. Par exemple, le dossier de projet est dans "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 dossier du projet. Si je survolez #include "extra.h" dans un .h fichier du projet je reçois toujours un popup disant " extra.h: No such file or directory".

dans Kdevel, il n'y avait pas de problème et qmake l'a compris. 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 tout le cadre Qt n'est pas reconnu par qt-creator. Quand je tape #include " les en-têtes suggérés par auto-completion sont tous situés dans "/ usr / include" ou dans le répertoire du projet. Par exemple, Je ne peux même pas faire #include <QtGui>.

quel pourrait être le problème ici?


EDIT2: le fichier du projet inclut aussi gui.pri et locales.pri qui sont utilisés par plusieurs autres les projets ainsi. J'ai essayé de compresser les fichiers un peu - il compile toujours sans problèmes.

fichier de projet Réel situé dans "dir0 / programs/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

}
10
demandé sur user3122343 2013-12-20 14:44:32

3 réponses

j'utilise premake et make pour construire mes projets et QtCreator comme IDE. J'ai eu le même problème que vous, en utilisant L'en-tête-seulement Bibliothèque GLM. Mon code source contenait la ligne suivante:: #include <glm/glm.hpp>. Il compilé sans erreurs, mais QT-Creator ne pouvait pas trouver le fichier, donc je n'ai pas été en mesure de sauter à elle ou les fonctions qu'elle contient en tenant CTRL et en cliquant sur une certaine fonction la bibliothèque fournie.

dans mon dossier de projet il y a un fichier appelé "Tree.comprend", où "l'Arbre" est le nom de mon Qt-Creator project. J'ai dû ajouter le chemin à la bibliothèque que j'utilise et ça a marché.

usedLibraries/glm/