
Ich verwende Flycheck auf meinem Emacs und fange gerade an, GTK zu lernen. Flycheck ist sich dieser Dinge jedoch offensichtlich nicht bewusst und gibt mir bei diesen #include
s Fehler aus.
Ich habe versucht, jedes der Dinge in der Option „Include-Pfad“ manuell einzuschließen, aber das ist ziemlich verrückt – da gibt es eine riesige Menge! Beim Kompilieren von der Befehlszeile aus pkg-config
wird genau aus diesem Grund verwendet. Gibt es eine Möglichkeit, Flycheck dazu zu bringen, etwas Ähnliches zu tun? Da es gcc
als Syntaxprüfer verwendet, denke ich, dass es möglich sein sollte, ich weiß nur nicht wie.
Antwort1
Nein, das ist ohne benutzerdefinierten Emacs Lisp-Code tatsächlich nicht möglich.
Für dieses Problem gibt es in Flycheck keine integrierte Lösung und es wird wahrscheinlich auch nie eine geben, da es eine Vielzahl von C/C++-Build-Tools und -Systemen gibt, die alle einen unterschiedlichen Ansatz zum Ermitteln und Speichern von Compiler-Flags haben.
Sie müssen daher benutzerdefinierten Emacs Lisp-Code schreiben, um flycheck-clang-include-path
oder flycheck-gcc-include-path
(je nachdem, welchen Prüfer Sie verwenden) mit dem zu füllen, was Sie von erhalten pkg-config
. Ich kenne Gtk nicht, daher kann ich Ihnen leider nicht helfen, wie dieser Code genau aussehen soll.
Normalerweise würden Sie eine Funktion schreiben, die pkg-config
die Variable aufruft und setzt, und diese Funktion zu hinzufügen c-mode-hook
. Sehen Sie sich dieflycheck-haskelloderflycheck-dmd-dubErweiterungen, die die Flycheck-Einstellungen für Haskell und D basierend auf den zugrunde liegenden Build-Systemen festlegen.
Dies ist auch die beste Lösung, da es aufgrund des Fehlens standardisierter Build-Tools nicht möglich ist, ohne großen Aufwand eine ausgefeiltere Unterstützung für C/C++ bereitzustellen.
Haftungsausschluss:Ich bin der Betreuer von Flycheck.