2016-04-01 2 views
-1

Ich migrierte C++ - Lösung mit mehreren Projekten von VS2010 zu VS2012. Projekte haben einen Verweis auf Bibliotheken mit Pfad, der als Systemvariablen festgelegt wurde.Facing IntelliSense Problem in Visual Studio 2012 für Includes mit Systemvariable

Anwendung wird kompiliert und ausgeführt. Aber Intellisense meldet Fehler für alle Symbole und Header in Bibliotheken. Im Knoten "Externe Abhängigkeiten" im Solution Explorer werden keine Headerdateien von Drittanbieterbibliotheken angezeigt. Header-Datei mit fest codierten und relativen Pfaden haben dieses Problem nicht.

Wenn Sie mit der rechten Maustaste auf Header-Deklaration klicken, um Header-Dateien zu öffnen, werden alle im Projekt angegebenen Pfade durch Striping von Umgebungsvariablenwerten angezeigt. z.B. Wenn include-Pfade "C: \ QT \ Includes; .. \ .. \ VISLIB \ Inc; $ (PROBAL_SHT_LIB) \ V18.05 \ Inc" sind, dann wird die Nachricht "File 'XX.h" in nicht gefunden ....... Build Systempfad: C: \ QT \ Includes; .. \ .. \ VISLIB \ Inc; \ V18.05 \ Inc. und stripes $ (PROBAL_SHT_LIB).

Ist mir auch aufgefallen, dass wenn ich eine neue Systemvariable einstelle, diese in "Macros" nicht angezeigt wird. oder Code wird nicht mit VS2012 kompiliert. Um VS2012 diese Variable erkennen zu lassen. Ich muss den PC neu starten.

Dies war mit VS2010 in Ordnung.

Antwort

0

Sie sollten wissen, dass der von intellisense verwendete Frontend/Parser nicht mit dem vom tatsächlichen Compiler verwendeten identisch ist. Sie werden nicht immer synchron aktualisiert, und sie haben oft unterschiedliche Level der Funktionsvollständigkeit und verschiedene Fehler. Daher ist es nicht ungewöhnlich, dass sich Intellisense über einen vollkommen gültigen Code beschwert, den der echte Compiler gut verarbeiten kann. Das ist natürlich nicht großartig - aber es ist eine Tatsache und niemand außer Microsoft kann etwas dagegen tun.

+0

Völlig zustimmen .. aber ich muss es für einige Bibliotheken arbeiten, die häufig ändern, so müssen neue Funktionen kennen und ändert Signaturen. Sonst wird die Entwicklungszeit stark zunehmen. –

+0

@Abhay Joshi sollten Sie mit Microsoft reden, wenn Sie nicht mit Intellisense zufrieden sind - sie sind die einzigen, die es verbessern können (wie meine Antwort angegeben). –

Verwandte Themen