Warum findet der Compiler die Funktion nicht?

... komplette Frage anzeigen

2 Antworten

Woher soll denn der arme Linker von der Datei gib_aus.c wissen? Wahrscheinlich funktioniert es sofort, wenn du sie auch übergibst:

gcc -Wall -o main main.c gib_aus.c

Damit benutzt du aber noch keine Bibliothek. Wenn du das möchtest, dann müsstest du zuerst eine erzeugen und diese dann stattdessen übergeben. Das könnte so aussehen (oder ähnlich):

gcc -c gib_aus.c
ar -rs libmeine.a gib_aus.o
gcc -o main main.c -lmeine.a

Damit das dann endlich wirklich funktioniert, müsstest du noch den Kommentar von Mikkey mit der extern-Deklaration beachten.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Junkpilepunk
18.09.2016, 17:24

Perfekt, so gehts. Danke.

1

Du musst die Funktion als "Export" (bei Verwendung in gib_aus.c) bzw. "Import" bei Verwendung in allen anderen Quellen deklarieren.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Junkpilepunk
18.09.2016, 15:53

Und wie mache ich das? :D

0

Was möchtest Du wissen?