Windows C Code unter Linux Compileren

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
reox
Beiträge: 2541
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

Windows C Code unter Linux Compileren

Beitrag von reox » 18.05.2008 19:22:39

Ich hab bis jetzt immer nur C unter Windows programmiert, da wir das in der Schule halt so machen... Nun hab ich einige Files die ich etwas bearbeitet habe und nun compileren muss. Eine make Datei war dabei, also in den Ordner und make eingegeben. Nur das geht leider nicht da gcc die ganzen stdlib usw nicht hat oder nicht findet:

Code: Alles auswählen

reox@Daryonia:~/Desktop/webgui/sources$ sudo make
cc -D_GNU_SOURCE -c index.c -o index.o
index.c:1:19: Fehler: stdio.h: No such file or directory
index.c:2:20: Fehler: string.h: No such file or directory
index.c:3:20: Fehler: stdlib.h: No such file or directory
index.c: In Funktion »main«:
index.c:46: Warnung: Unverträgliche implizite Deklaration der eingebauten Funktion »printf«
index.c:47: Warnung: Unverträgliche implizite Deklaration der eingebauten Funktion »exit«
index.c:66: Fehler: »EXIT_SUCCESS« nicht deklariert (erste Benutzung in dieser Funktion)
index.c:66: Fehler: (Jeder nicht deklarierte Bezeichner wird nur einmal aufgeführt
index.c:66: Fehler: für jede Funktion in der er auftritt.)
index.c: In Funktion »getLevel1«:
index.c:70: Fehler: »NULL« nicht deklariert (erste Benutzung in dieser Funktion)
index.c: In Funktion »getLevel2«:
index.c:86: Fehler: »NULL« nicht deklariert (erste Benutzung in dieser Funktion)
index.c: In Funktion »printMenu1«:
index.c:102: Warnung: Unverträgliche implizite Deklaration der eingebauten Funktion »printf«
index.c: In Funktion »printMenu2player«:
index.c:139: Warnung: Unverträgliche implizite Deklaration der eingebauten Funktion »printf«
index.c: In Funktion »printMenu2«:
index.c:194: Warnung: Unverträgliche implizite Deklaration der eingebauten Funktion »printf«
index.c: In Funktion »pringPageHead«:
index.c:231: Warnung: Unverträgliche implizite Deklaration der eingebauten Funktion »printf«
index.c: In Funktion »printPageFoot«:
index.c:242: Warnung: Unverträgliche implizite Deklaration der eingebauten Funktion »printf«
make: *** [index.o] Fehler 1
So sieht das dann aus. Wie kann ich die headerfiles mit linken lassen? muss ich mir die jetzt laden und in den ordner packen? oder kann ich das im makefile noch anpassen etc?

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Re: Windows C Code unter Linux Compileren

Beitrag von gms » 18.05.2008 19:34:08

die stdlib.h gibt es auch auf Unix/Linux- Systemen, dir fehlt wahrscheinlich nur das Paket "libc6-dev"
Wenn du dieses Programm für Windows bauen möchtest, kannst du das auch unter Linux mit dem Compiler aus dem mingw32 Paket. Testen kannst du das Programm dann über Wine

Gruß
gms

edit: aja, die Header-Files spielen beim Linken keine Rolle mehr :wink:

reox
Beiträge: 2541
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

Re: Windows C Code unter Linux Compileren

Beitrag von reox » 18.05.2008 19:41:00

jo die libc6-dev fehlte! danke ;)

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Re: Windows C Code unter Linux Compileren

Beitrag von nepos » 19.05.2008 11:26:56

Wozu eigentlich mit sudo Compilieren? Da brauchst du doch keine Root-Rechte.

reox
Beiträge: 2541
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

Re: Windows C Code unter Linux Compileren

Beitrag von reox » 19.05.2008 11:45:56

achso ja... ich habs das erste mal ohne sudo gemacht da hab ich eben die fehlermeldung bekommen und habs dann noch mit sudo probiert...

Antworten