Używam Xcode 7.3 i otrzymuję ostrzeżenie "Niejednoznaczna ekspansja makra" dla makra zdefiniowanego w Fundacji, ale które Nieokreślone i ponownie zdefiniowane w moim pliku prefiksu. Mam włączone moduły.Xcode 7.3: "Niejednoznaczna ekspansja makra" podczas ponownego definiowania makra w pliku prefiksu
Aby odtworzyć:
- Ustaw "Włącz moduły (C i Objective-C)" Tak w ustawieniach kompilacji
użyć następujących plików prefix:
#import <Foundation/Foundation.h> #undef assert #define assert(e) NSLog(@"hi") // implementation is not important
Użyj następujący główny plik źródłowy:
int main() { assert(42); return 0; }
Następnie zbuduj w Xcode.
- Pokazuje "Niejednoznaczne rozszerzenie makra" asercie "" ostrzeżenie na linii w pliku źródłowym, które używa makra "assert". "Rozszerzanie tej definicji" assert "" wskazuje na definicję z nagłówka systemu, a nie moją redefinicję. "Inna definicja" assert "" wskazuje na definicję w moim pliku prefiksu.
To ostrzeżenie nie występuje, gdy moduły są wyłączone.
To nadal wydaje się być problemem w Xcode 8. –
To samo w Xcode 9 – iosdude