it-swarm.com.de

Der Verweis auf 'X' ist mehrdeutig

Nach einigen Änderungen an meinem Projekt bekomme ich plötzlich den Build-Fehler:

Reference to 'kCGImageAlphaPremultipliedLast' is ambiguous

Reference is ambiguous und wenn man sich den Fehler anschaut, zeigt es mir, dass er 4-mal referenziert wird

enter image description here

Kann mir bitte jemand sagen, wie das passieren kann und wie kann ich herausfinden, was das verursacht? Ich importiere nichts explizit von CoreGraphics und meine Prefix-Datei importiert nur "Foundation.h" und einige selbst erstellte Makros. Ich importiere jedoch mehrere Header, die reinen c-Code enthalten, aber alle sind in etwa wie folgt gekapselt:

#ifndef __MYCCODE_H
#define __MYCCODE_H
// imports here
// c code here
#endif

Dies geschieht in xcode 5 mit LLVM 5.1

Edit: Dies scheint ein anderes Problem bei diesem Projekt zu sein. Nachdem ich diese Codezeile kommentiert habe, bekomme ich einen weiteren Fehler:

Malformed or corrupted AST file: 'Unable to load module "/Users/xxx/Library/Developer/Xcode/DerivedData/ModuleCache/1NHZ5MC2OSMJV/CoreImage.pcm": module file out of date'

das Entfernen des Moduls und das erneute Hinzufügen half nicht. Das Löschen der abgeleiteten Daten half auch nicht. Dieser Fehler tritt auch auf, wenn Sie zu einem Working Commit zurückkehren

23
HellGate

Nachdem ich ein neues Projekt erstellt und alles in dieses Projekt kopiert hatte, war der Build erfolgreich. Allerdings erhielt ich diese Fehlermeldung "Malformed or brokened AST file" "mehrmals. Dieser Fehler kann jedoch behoben werden durch:

  • Reinigen Sie das Projekt
  • Alles in '~/Library/Developer/Xcode/DerivedData/ModuleCache /' löschen (der Button im Organizer-Fenster hat für mich nicht funktioniert)
  • Reinige noch einmal
  • Projekt erstellen

danach funktioniert es gut, außer dass ich diese Korrektur von Zeit zu Zeit durchführen muss

ich habe auch einen Unterschied zu dem alten Projekt gemacht und es scheint, dass eine Menge Frameworks und anderes altes Zeug dort beim Testen von Dingen stecken.

ich dachte, dass Xcode und ich eines Tages Freunde sein können. Schätze nicht...

17
HellGate

Ich habe dieses Problem, wenn ich zweimal eine Header-Datei importiert habe. Nachdem einer von ihnen entfernt wurde, verschwindet das Problem.

13
Jibeex

Vielleicht importieren Sie so: 

#import "xxxx.h"

Ich repariere es durch:

#import <xxxx/xxxx.h>

13
NSKevin

Für alle, die immer noch Probleme haben: In meinem Fall hat keine der vorgeschlagenen Lösungen funktioniert. Ich kompiliere alle meine Frameworks mit Carthage und erhielt diese Fehler in meinem Hauptprojekt, wenn ich einen Header eines Frameworks importiere, das ein Framework verwendet, das auch von meinem Hauptprojekt verwendet wird. Was schließlich gelöst wurde, war die Deaktivierung von 'Modules' im Hauptprojekt .  enter image description here

9
Matan Guttman

Nun, einige Lösungen hier sind Nice, aber use_frameworks! Das ist genau das, was ich jetzt brauche, obwohl dieses Problem aufgetreten ist. Aber es sieht so aus, als würde build nicht so aussehen, wenn ich Frameworks verwende und der Header zweimal so referenziert wird

#import "TSMessage.h"
#import "TSMessage+CSExtension.h"

aber das Problem kommt weg, wenn es so kompiliert wird

#import "TSMessage+CSExtension.h"
1
Renetik

Use_frameworks entfernen! von pod-datei beheben mein zweideutiges problem.

1
furkan

benutzen 

#import "anyviewcontroller.h"

statt eines Moduls 

@import anymodule;

Ich verwende LGSideMenuController. Wenn ich es zum ersten Mal integriere, funktioniert es gut, aber ich weiß nicht, warum ich diesen Fehler nach einiger Zeit erhalten habe.

so ersetzte ich das Modul @import LGSideMenuController; in die Header-Datei. So#import "UIViewController+LGSideMenuController.h"

und der Fehler geht weg.

0
Mahesh Cheliya

Ich hatte gerade die gleichen Warnungen in meinem Build-Bericht (aber nur unter dem Dreieck). Am Ende funktionierte es für mich, sicherzustellen, dass JEDE Verwendung von:

#import <Module/Module.h> 

in der App wurde ersetzt durch:

@import Module;

Jetzt sind alle nervigen Warnungen weg!

0
David H