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
}
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
Vous devez vous connecter pour publier un commentaire.
- Je utiliser premake et faire construire mes projets et que les IDE QtCreator. J'ai eu le même problème que vous, à l'aide de l'en-tête uniquement de la Bibliothèque de GLM.
Mon code source containded la ligne suivante:
#include <glm/glm.hpp>
. Il est compilé sans erreurs, mais QT-Creator ne pouvait pas trouver le fichier, je n'étais donc pas en mesure d'y accéder ou les fonctions qu'il contient en maintenant la touche CTRL enfoncée et en cliquant sur une fonction de la bibliothèque.Dans mon dossier de projet de location est dans un fichier appelé "Arbre.comprend", où "l'Arbre" est le nom de mon QT-Creator projet. J'ai dû ajouter le chemin d'accès à la bibliothèque, j'utilise ther et cela a fonctionné.
usedLibraries/glm/
Mon "Arbre.comprend" fichier ressemble à ceci:
Mon dossier de projet y ressemblait comme ceci:
OriginalL'auteur Boris Month
Je sais que ma réponse est tardive, mais j'ai eu le même problème et il n'y a pas de solution dans des tonnes de différents messages, mais ensuite j'ai trouvé une solution qui a fonctionné pour moi:
Vous devez ajouter le module que vous utilisez dans votre .pro fichier:
Par exemple, j'ai voulu utiliser le
#include<QtSql>
module, mais rien n'a fonctionné.Le compilateur ne trouve pas ce fichier. J'ai découvert que j'étais capable de
#include<QtSql/QSqlDatabase>
(et tous les types qui sont déclarées dans QtSql) cependant, mais j'ai eu un"undefined reference"
erreur.La Solution: Vous devez ajouter le module que vous utilisez chez vous .fichier pro, dans la ligne suivante:
(C'est la façon dont il a regardé par défaut pour moi)
C'est la façon dont il regarde maintenant, pour moi, et comment cela a fonctionné pour moi:
Espère que cela aide quelqu'un d'autre qui a eu les mêmes problèmes.
Cela fonctionnait sur Windows ainsi que sur Ubuntu!
OriginalL'auteur ElectRocnic
Vous devez inclure les en-TÊTES aussi dans le .fichier pro.
Après avoir fait cela, enregistrez votre projet, de le laisser analyser. Puis supprimer votre dossier de création (ne pas nettoyer), et puis essayer de re-construire.
J'ai aussi testé votre suggestion et a ajouté l'un d'entre eux directement à l' .fichier pro (HEADERS += ../../utils/us_extern.h). Malheureusement, même si l'en-tête est ajouté de cette façon que j'ai toujours l' "No such file or directory" :/
Oui vous avez besoin d' #include là où ils sont nécessaires. Cependant, ils doivent être dans votre .pro fichier, de sorte que le projet reconnaît comme un en-tête valide.
Le problème semble être encore plus grand, veuillez consulter l'édition de mon post principal
S'il vous plaît montrer votre .fichier pro.
OriginalL'auteur Abhishek Bansal