2016-03-31 7 views
1

Ich möchte einige Ziel c Anrufe in C++ Projekt implementieren also versuche Gleiche zu tun wie „this question“ (einige bestimmte Dateien als Ziel C++ kompilieren)Referenz mehrdeutig Cocos2d-x Größe Typ

aber dann komme ich in „Reference mehrdeutige“ Fehler für diese Codezeile:

Size visibleSize = Director::getInstance()->getVisibleSize(); 

sagen „Verweis auf‚Größe‘ist mehrdeutig

meine aktuellen Compiler-Einstellungen:

C Lang Dialect : GNU99[-std=gnu99] 
Compiler Sources As : According to File Type 

C++ Language Dialect : GNU++14[-std=gnu99] 
C++ Standard Library : libc++ (LLVM C++ standard library with c++11 support) 
+0

Ist das alles die Fehlermeldung sagt Ihnen? – trojanfoe

+0

Jede Datei, deren Suffix '.mm' ist, wird als Objective-C++ behandelt. – Avi

Antwort

0

Das Problem ist, dass die Size Typ existiert in Cocos2d-x und anderswo in den Header-Dateien der Compiler gesehen hat.

Zum Glück all Cocos2d-x wird in einem eigenen Namensraum definiert, so müssen Sie die folgend in der säumigen Datei (en) tun:

  1. entfernen USING_NS_CC von der Spitze der Implementierungsdatei.
  2. Fügen Sie den cocos2d:: Namespace auf alle Cocos2d-x Art und Klassenreferenzen in der Implementierungsdatei, zum Beispiel:

    cocos2d::Size visibleSize = cocos2d::Director::getInstance()->getVisibleSize(); 
    

, dass der Compiler genau sagt, welche Size Typ, den Sie sich beziehen.

Auch Cocos2d-x unterstützt C++ 11, aber nicht C++ 14, soweit ich weiß, ändern Sie das in den Build-Einstellungen.

+0

wow! perfekte Erklärung, die ich brauchte. Ich war schon einige Tage darauf fest. Danke @trojanfoe! –