Frage von ccputer, 5

Linux Kommandozeile: suche ein Befehl für C99-Compiler

Hallo,

bisher habe ich mit Linux Debian meine kleinen C Programme mit dem Befehl "make " kompilliert und im Verzeichnis mit "./." gestartet, mehr habe ich nicht gebraucht und weiß ich auch nicht. Da ich vorher immer Windows genutzt habe.

Meine aktuellen und zukünftigen Programme schreibe ich allerdings im C99-Standart. Der Compiler, der beim make Befehl verwendet wird, nutzt jedoch wohl noch den C90-Standart. Es gibt vielleicht eine Option "-std=C99" die den Compiler umstellen kann.

Die Google-Suche verwirrt mich nur mehr als das sie hilft.

Kennt jemand einen Befehl mit dem man C99 Programme kompilieren kann oder den Compiler der beim "make" -Befehl verwendet wird dauerhaft auf C90/C99 umstellen kann ?

Antwort
von DrErika, 5

Standard wird mit D am Ende geschrieben STANDARD! Deswegen heißt die Option auch -std mit D.

Hier ein Beispiel für ein Makefile mit c99-Standard:

CFLAGS = -ansi -Wall -pedantic -std=c99
LFLAGS = -lm 
CC = gcc

all: tm

tm: tm.o tm_coins.o tm_options.o tm_stock.o tm_utility.o
    $(CC) $(LFLAGS) tm.o tm_coins.o tm_options.o tm_stock.o tm_utility.o -o tm

tm.o: tm.h tm.c
    $(CC) $(CFLAGS) -c tm.c

tm_coins.o: tm_coins.h tm_coins.c
    $(CC) $(CFLAGS) -c tm_coins.c

tm_options.o: tm_options.h tm_options.c
    $(CC) $(CFLAGS) -c tm_options.c

tm_stock.o: tm_stock.h tm_stock.c
    $(CC) $(CFLAGS) -c tm_stock.c

tm_utility.o: tm_utility.h tm_utility.c
    $(CC) $(CFLAGS) -c tm_utility.c

Es ist auch überhaupt nicht notwendig, irgendwelche Tools oder IDEs zusätzlich einzusetzen, nur weil man mal ein Programm schreiben und übersetzen will.

Kommentar von DrErika ,

Übrigens übersetzt man mit "make" nicht wirklich ein Programm, sondern lässt ein Makefile ausführen, in welchem von "make" interpretierbare Aufgaben drinstehen, die ausgeführt werden sollen. Der eigentliche Compiler heißt gcc und der kennt diverse Optionen, so z.B. das Übersetzen von c99-kompatiblen Programmen.

Antwort
von Fugenfuzzi, 4

Wen ich Programmiere ( egal in welcher Programmiersprache) entwickle ich immer auf der Plattform ECLIPSE . Diese kann alle mir bekannten Programmiersprachen die es Weltweit gibt.

Wenn ich am Kernel was Prorgammiere so schreibe ich dies meist in einem Texteditor oder Compiliere nach normalen werten --> make

Mir ist noch kein Fall bekannt das man hier irgendwas umstellen musste.

Würde mich gern mal Interessieren was du dir bei der Umstellung dir Versprichst bzw. was genau hast du eigentlich vor und wozu brauchst du das ?

Kommentar von Fugenfuzzi ,

Wenn du Programmierst solltest auch den Standart nehmen der für die Sachen Verwendung findet. Wenn es der C90 ist pass deine Programmierung daran an und nicht Umgekehrt das man einen anderen Standard nimmt und diesen dann umkonvertiert in den Standart der gebraucht wird.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten