Czy można ustawić symbol kompilacji warunkowej, ustawiając właściwości w projekcie Xcode?
Moim celem jest stworzenie symbolu, który będzie dostępny dla wszystkich plików bez konieczności używania importu / dołączania, tak aby zestaw wspólnych klas mógł mieć specjalne zachowanie w niektórych projektach. Jak poniżej, ale z moimi własnymi symbolami.
#if TARGET_IPHONE_SIMULATOR
...
#endif
objective-c
xcode
c-preprocessor
Steph Thirion
źródło
źródło
Odpowiedzi:
Przejdź do ustawień celu lub projektu, kliknij ikonę koła zębatego w lewym dolnym rogu i wybierz opcję „Dodaj ustawienie zdefiniowane przez użytkownika”. Nowa nazwa ustawienia powinna brzmieć
GCC_PREPROCESSOR_DEFINITIONS
, a definicje można wpisać w polu po prawej stronie.Zgodnie z komentarzami Steph, pełna składnia to:
Zwróć uwagę, że nie potrzebujesz znaku „=”, jeśli chcesz po prostu # zdefiniować symbol, zamiast nadawać mu wartość (w przypadku
#ifdef
instrukcji)źródło
Nie musisz tworzyć ustawienia zdefiniowanego przez użytkownika. Wbudowane ustawienie „Preprocessor Macros” działa dobrze. tekst alternatywny http://idisk.mac.com/cdespinosa/Public/Picture%204.png
Jeśli masz wiele obiektów docelowych lub projektów, które używają tego samego pliku prefiksu, zamiast tego użyj makr preprocesora nieużywanych w prekompilowanych nagłówkach, aby różnice w definicji makra nie wyzwalały niepotrzebnego dodatkowego zestawu wstępnie skompilowanych nagłówków.
źródło
Jako dodatek, jeśli używasz tej techniki do definiowania łańcuchów w celu, tak musiałem je zdefiniować i używać:
W Ustawieniach kompilacji -> Makra preprocesora i tak, ukośniki odwrotne są krytyczne w definicji:
A w kodzie źródłowym:
źródło
Możesz użyć tego
*_Prefix.pch
pliku do zadeklarowania makr obejmujących cały projekt. Ten plik zwykle znajduje się w Twojej grupie Inne źródła .źródło
Znajduje się w „GCC 4.2 Preprocessing” (lub po prostu wstaw „prepro” w polu wyszukiwania) ...
... jednak za całe życie nie mogę zmusić go do pracy.
Mam swoje standardowe konfiguracje debugowania i wydania i chcę zdefiniować DEBUG = 1 w konfiguracji debugowania. Ale po dodaniu go jako wartości:
(w oknie ustawień)> Makra preprocesora: DEBUG = 1
... nigdy nie drukuje / nie dzwoni. Doprowadza mnie do szaleństwa ...
źródło
#if DEBUG
:) stackoverflow.com/a/47395485/2778502W odpowiedzi na komentarz Kevina Laity (patrz odpowiedź cdespinosa), że sekcja GCC Preprocessing nie jest wyświetlana w ustawieniach kompilacji, ustaw Active SDK jako ten, który mówi (Base SDK) za nim, a ta sekcja pojawi się. Możesz to zrobić, wybierając z menu Project> Set Active Target> XXX (Base SDK). W różnych wersjach XCode (Base SDK) może się różnić, np. (Project Setting lub Project Default).
Gdy pojawi się ta sekcja, możesz dodać definicje do makr procesora, zamiast tworzyć ustawienie zdefiniowane przez użytkownika.
źródło
Dla projektu Xcode 9.4.1 i C ++. Dodawanie
const char*
makr preprocesora do kompilacji debugowania i wydania .Wybierz swój projekt
Wybierz Ustawienia kompilacji
Wyszukaj „ Makra preprocesora ”
Otwórz listę interaktywną
Dodaj swoje makra i nie zapomnij zmienić cudzysłowu
Użyj w kodzie źródłowym jako powszechne
const char*
źródło
Możesz zduplikować cel, który ma sekcję przetwarzania wstępnego, zmienić jego nazwę na dowolną, a następnie zmienić wartość makra Preprocessor.
źródło