2012-06-27 8 views
21

Ich fand, dass mein Projekt setztWofür wird GCC_NO_COMMON_BLOCKS verwendet?

GCC_NO_COMMON_BLOCKS = NO 

unter Apple-LLVM Compiler 3.1 - Codegenerierung Einstellungen, wie "keine gemeinsamen Blocks"

enter image description here

Ich weiß, möchte: was ist das Flagge verwendet für?

Vielen Dank

Antwort

31

Von schnellen Hilfe von Xcode:

In C zuteilen auch nicht initialisierte globale Variablen im Datenteil der Objektdatei, anstatt sich als gemeinsame Blöcke zu erzeugen. Dies hat den Effekt, dass wenn Sie dieselbe Variable (ohne extern) in zwei verschiedenen Kompilationen deklarieren, erhalten Sie einen Fehler, wenn Sie verknüpfen. Der einzige Grund, warum dies nützlich sein könnte, ist, wenn Sie möchten überprüfen, dass das Programm auf anderen Systemen funktioniert, die immer funktionieren auf diese Weise.

Sie können die schnelle Hilfe im rechten Fensterbereich unter "Show Quick Help Inspector" Tab finden: Xcode Quick Help Inspector

+4

Dank! Ich wusste nicht, dass XCodes schnelle Hilfe auch bei den Build-Einstellungen und dem Zeug half. Das hätte mir etwas Zeit gespart. – Lio

+5

Diese Option scheint durch die empfohlenen Xcode 8-Einstellungen aktiviert zu sein. – Richard

+2

das Problem, dass es standardmäßig in Xcode 8 ist, wird es eine ganze Reihe von bestehenden Projekten durch wahrscheinlich eine große Mehrheit von Entwicklern über viele Jahre durcheinander bringen .. und der "Fehler" generiert in den meisten Fällen (wenn nicht alle) nicht darauf hinweisen, welche Variablen "üblich" sind, noch gibt der Fehler einen Hinweis darauf, dass es sogar mit "gemeinsamen" Variablen zusammenhängt, noch gibt es einen Hinweis, dass die Wurzel des Fehlers eine (automatische) Compiler-Einstellungsänderung war, die den Unterschied verursachte. – hokkuk