Xcode 7.3: "Mehrdeutige Erweiterung des Makros" beim Neudefinieren der Makro-Präfix-Datei

8

Ich benutze Xcode 7.3, und ich bekomme eine Warnung "Mehrdeutige Erweiterung des Makros" für ein Makro, das in Foundation definiert wurde, das ich aber in meiner Präfix-Datei nicht definiert und neu definiert habe. Ich habe Module aktiviert.

Um zu reproduzieren:

  • Setzen Sie "Module (C und Objective-C) aktivieren" in Build-Einstellungen auf
  • Verwenden Sie die folgende Präfix-Datei:

    %Vor%
  • Verwenden Sie die folgende Hauptquelldatei:

    %Vor%
  • Dann bauen Sie Xcode ein.

  • In der Zeile in der Quelldatei, die das Makro "assert" verwendet, wird die Warnung "Ambiguous expansion of macro 'assert'" angezeigt. Das "Erweitern dieser Definition von 'assert'" verweist auf die Definition aus dem Systemheader, nicht meine Neudefinition. Die "andere Definition von 'assert'" verweist auf die Definition in meiner Präfix-Datei.

Diese Warnung tritt nicht auf, wenn Module deaktiviert sind.

    
user102008 21.03.2016, 23:51
quelle

1 Antwort

4

Dies ist ein Fehler in Xcode; Wir würden uns freuen, wenn Sie in Ссылка einen Fehlerbericht einreichen und den Fehler # hier in einem Kommentar hinterlassen könnten. In der Zwischenzeit haben Sie folgende Möglichkeiten, diesen Fehler zu umgehen:

  • Sie könnten für dieses Makro einen anderen Namen als "assert" verwenden.
  • Sie könnten die Build-Einstellung GCC_PRECOMPILE_PREFIX_HEADER auf NEIN setzen, da PCH keine großen Vorteile bietet, wenn Sie bereits über Module verfügen. Der Präfix-Header funktioniert immer noch, er wird einfach nicht in einen PCH umgewandelt.
  • Sie könnten Module deaktivieren.
Rick Ballard 28.03.2016 21:36
quelle