2017-05-22 2 views
2

Ich möchte ähnlicheKann ich sicher annehmen, dass alle (oder die meisten) "cc" "-Wall" auf * nix Systemen unterstützt?

foo: foo.c 
     $(CC) -o foo -Wall foo.c 

in Makefile schreiben, aber ich bin nicht sicher, ob alle cc Implementierungen -Wall unterstützen.

+1

der Regel Ihre Make-Datei Abschnitte für jeden Compiler Sie unterstützen möchten haben würde, wo Sie definieren würde, sagen wir, 'WARNHINWEISE = -Wall' für gcc,' WARNHINWEISE =/bla' für MSVC, und dann würde der Befehl build 'sein $ (CC) -o foo $ (WARNUNGEN) foo.c' –

Antwort

3

Nein, die nächste Sache, die Sie nur tragbare Optionen verwenden tun können, ist, sich zu den Optionen POSIX C89 und C99 zu beschränken. -Wall ist nicht einer von ihnen. Sehen Sie die Opengroup's Unix Specification for c99 für Optionen, die sind. Und das gibt nur Antworten für Unixy-Systeme, nicht für Microsoft.

-Wall war (AFAIK) eingeführt von GNU gcc und vererbte durch clang mit GNU gcc kompatibel zu sein.

Wenn Sie keine Angst haben, andere Build-Tools zu erforschen, gibt es einige, die Multi-OS-oder Multi-Toolchain Unterstützung aus dem Kasten heraus aufbaut. Ich glaube, scons und cmake können dies tun.

4

Nein, es gibt keinen Standard bezüglich der Befehlszeilenschnittstelle von C-Compilern.

Der Microsoft-Compiler (in Windows) zum Beispiel akzeptiert keine Optionen beginnend mit - überhaupt, da das nicht die Syntax ist, die normalerweise mit Windows-Programmen verwendet wird.

Verwandte Themen