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
}
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/