2013-06-16 16 views
11

pracuję z tym plikiem utils.c w Xcode, który posiada następujące:Oczekiwany; po górnej declarator poziomie, błąd w Xcode

#if FF_API_AVCODEC_OPEN 
    int attribute_align_arg avcodec_open(AVCodecContext *avctx, AVCodec *codec) 
    { 
     return avcodec_open2(avctx, codec, NULL); 
    } 

To powodując Expected ; after top level declarator, błąd (podczas kompilacji) w Xcode na tej linii: int attribute_align_arg avcodec_open(....

Dlaczego? i co powinienem zrobić, aby rozwiązać ten problem.

Dziękuję.

+2

Wygląda, że ​​atrybut "atrybut_align_arg" nie został zdefiniowany. Musisz załączyć odpowiedni plik nagłówkowy, który według Google to 'libavutil/internal.h' –

+0

Jeśli nie jest to rozwiązanie @ CaptainObvlious, jakie są linie powyżej kodu, który podałeś? – xaxxon

+0

@Captain Obvlious, 'libavutil/internal.h' jest zawarty w ścieżkach nagłówków xcodes. Błąd nie dotyczy definicji obiektu ani nierzetelnego pliku '.h'. Chodzi o to (myślę), że xcode oczekuje ';' zaraz po 'int attribute_align_arg' w powyższym stwierdzeniu. – cube

Odpowiedz

38

Wystąpił ten błąd podczas korzystania z automatycznego uzupełniania.

Po wstawieniu parametru funkcji, XCode wstawi symbole zastępcze, które będą edytowane, ale będą wyświetlane jako całkowicie poprawne C++ w GUI.

zajęło mi kilka godzin, dopóki nie sprawdził moje plik w innym edytorze, ujawniając, że zamiast oczekiwanego:

void func (int a)

XCode rzeczywiście włożona

void func (< #int a #>)

W edytorze XCode parametr jest wyświetlany jako int a z jasnoniebieskim tłem, więc nie jest łatwo znaleźć go jako źródło błędu kompilatora.

+0

Dzięki To pomogło :) – SpiXel

+2

To niewiarygodne! Nie wyglądało to jak miejsce właściciela – cowls

+1

Zrobiłem wyciąć n 'pastę i dostałem coś podobnego. Musiało tam być trochę znaków specjalnych. Usunąłem, przepisałem i błąd zniknął :) – kmiklas

Powiązane problemy