c ++ - Qt Creator kan ikke finde overskrifter (siger: 'Ingen sådan fil eller mappe')

Indlæg af Hanne Mølgaard Plasc

Problem



Hvordan kan jeg fortælle Qt Creator 2.4.1 (baseret på Qt 4.7.4 32-bit) hvor skal man se som standard for headerfiler?


Når jeg åbner en C-fil i Qt Creator og siger


#include <stdio.h>


det understreger linjen og siger


stdio.h: No such file or directory


Jeg vil gerne fortælle det at søge efter overskrifter i en mappe af mit valg; hvordan gør jeg det her?


Opdater



Jeg må også spørge: Er dette endda muligt ? Eller skal jeg oprette et helt projekt hver gang jeg vil redigere en frittstående C ++-fil?




Bedste reference


Jeg fandt mig selv ofte konfronteret med dette problem. Jeg kan også gengive det på min maskine lige nu (Mac OS).


Det ser ud til, at QtCreator har brug for et projekt til korrekt håndtering af GCC-bananalyse (oven på Qt-rammerne).

Processen Qt bruger til at finde overskrifterne er, at den lancerer GCC (eller din compiler på Windows) med specielle argumenter, der gør det muligt at udlæse de stier, hvor kompilatoren finder sine overskrifter. MEN for at gøre det skal det have et projekt tilknyttet dine filer, fordi det bruger dette projekt til at bestemme, hvilken værktøjskæde der skal bruges, og hvor GCC er fundet.


Så svaret er dette: Opret et projekt, altid , for at bruge syntaksanalysen.

Bemærk, at det er helt vigtigt, at når du opretter dette projekt, definerer du hvilken version af Qt SDK og værktøjskæden du vil bruge, ellers fungerer ikke syntakontrollekliket.


Du kan finde nogle interessante måder at bruge en Qt-projektfil på, selvom du ikke bruger Qt SDK eller bruger Creator til at opbygge dit projekt. Se et svar på et lignende spørgsmål her: https://stackoverflow.com/a/5817226/389405


Bemærk, at jeg personligt bruger denne metode med en .pro fil, der blot lister alle mine underkataloger til mit projekt og med alle tastaturgenveje til at opbygge deaktiveret, så jeg kun bruger Qt Creator som redaktør. Syntax fremhævning/linking er fantastisk og exceptionnally hurtig, langt, langt hurtigere end Eclipse!


For at gøre det, skal du blot udstede qmake -pro i mappen til dit projekt. Det vil oprette en [DIR].pro fil, som du kan fjerne når som helst.


Jeg fyldte en fejl for et år siden på et aspekt af denne syntaksanalyse, der generede mig her: https://bugreports.qt.io/browse/QTCREATORBUG-4846, årsagen til at kompilatoren jeg bruger, udleverer sine data på fransk i stedet af engelsk. De fastsatte koden i 2.4, men det kan være Unix-specifikke (se kommentarerne til problemet for at få flere oplysninger), så du vil sandsynligvis gerne teste om dette problem kan anvendes på din sag. [7]


Hvis dit problem fortsætter, selv efter at du har lavet et projekt til din udgave, skal du sørge for at pege på gutta på qt-project.org!


Ellers er den eneste løsning jeg ser ændrer kildekoden til QtCreator. Du kan i deres sidste indlæg finde nogle oplysninger om, hvordan du kan bidrage her: https://blog.qt.io/blog/2012/03/15/qt-creator-2-5-beta/(og prøv deres nye beta som understøtter C ++ lambdas ). [8]

Andre referencer 1


hvilket operativsystem og compiler du bruger og version af begge?
Kontroller, om miljøvariablerne i installationen er korrekte, for eksempel Hvor er overskrifterne til c ++ ?. En variant er at tilføje stien til 'inklusiv dine overskrifter' til projektkonfigurationen i det venstre panel, gå til 'projekt - program - mål' og tilføj stien til indholdet. en anden er at tilføje den fulde sti til placeringen af ​​c + + standard overskrifter til variablen 'includepath' i din .pro fil.

Andre referencer 2


Fristående C + + -filer kan redigeres, men det er sandsynligt, at du vil miste funktionaliteten til #include s og autofuldføre, blandt andet. Jeg holder personligt alle mine projekter i Qt på en eller anden måde, uanset om det er et simpelt GUI-program, der gør en opgave, så jeg kan fejle det (gdb synes ikke at kunne lide kommandolinjeprogrammer, i det mindste i min erfaring) eller bruge et 'Simple C ++ command line' -projekt for ikke-Qt-afhængige projekter.

Andre referencer 3



  Eller skal jeg oprette et helt projekt hver gang jeg vil redigere a
  standalone C ++-fil?



Nej, du kan inkludere selvstændig fil i eksisterende projekt ved blot et enkelt klik på projektorens rod - kontekstmenu - tilføj eksisterende fil. Du kan tildele hurtignøglen til det, samt at fjerne filen fra projektet, så det bliver hurtigt og nemt at bruge dit yndlingsredaktør og dets miljø. Du kan se på det, som du bare åbner filen. Desværre er der ingen kommandolinjeparametre til at tildele et standardprojekt (og dets miljø) til en selvstændig fil for at bruge den ved dobbeltklik i en filhåndtering.


Håber det hjælper.

Andre referencer 4


Det afhænger af hvilket værktøjskæde der er defineret for det aktuelle projekt.


Værktøjskæder defineres i Tools-Options-Build & Køreværktøjskæder.
De fleste er autodetekterede, men du kan tilføje dine egne.


Der er ingen standardværktøjskæde, så du har brug for et projekt for at disse overskrifter findes i den valgte værktøjskæde.