Derzeit versuche ich, GCC auf Debian zusammen mit einem Makefile zu verwenden, da ich einen meiner Header mache. Jedes Mal, wenn ich versuche, die Make-Datei zu "machen", bekomme ich einen Fehler wie folgt:GCC und Makefile (mehrere Deklarationen einer Funktion, sogar mit nur einem?)
setup.o: In der Funktion 'Setup':
setup.c :(text + 0x0.): Mehrere Definition von `setup‘
finalkek.o: finalkek.c :(text + 0x0.): zuerst hier definiert
collect2: *** [projExec] Fehler: ld 1 Exit-Status
make zurück 1
Mein Make-Datei sieht wie folgt aus:
projExec: finalkek.o setup.o
gcc -o projExec finalkek.o setup.o
finalkek.o: finalkek.c setup.h
gcc -c finalkek.c
setup.o: setup.c
gcc -c setup.c
finalkek.c
meine Hauptdatei ist, und setup
ist mein Header.
In meinem Haupt-Datei, hier das einzige Mal, dass ich es zu erwähnen ist:
include "setup.h" // Using the double quotes for a custom header...
void main()
{
setup();
rest of code here...
}
In meiner Header-Datei, setup.h
, ich habe es wie folgt aus:
void setup()
{
rest of code here...
}
Warum haben Sie Ihre Implementierung Ihrer 'Setup()' Funktion in 'setup.h'? Was ist in 'setup.c'? (Ist es ein Tippfehler?). Ihr Problem ist wahrscheinlich ein mehrfacher Importfehler. Wir können Ihnen eine definitive Antwort geben, wenn Sie die entsprechenden Änderungen vornehmen. – KyrSt
Obwohl es nicht mit dem Problem zusammenhängt, sollte 'void main()' 'int main (void)' sein.Wenn du ein Buch oder eine Anleitung hast, die dir 'void main()' sagt, finde einen besseren, dessen Autor C. kennt. –
Außerdem habe ich "Debian" sowohl aus dem Titel als auch aus dem Tag herausgeschnitten, da es fast sicher irrelevant ist. Plus, bitte posten Sie alle Code (einschließlich Makefiles) in den Beitrag selbst und nicht als Screenshot – KyrSt