Forum: PC-Programmierung Visual Micro "undefined reference to" Problem


von Kilian K. (kellermaaan)


Lesenswert?

Hallo,

ich habe leider ein kleines Problem mit meinem Code... Wenn ich diesen 
kompiliere, dann bekomme ich folgende Warnings:
1
tcp_lwip.cpp.o:In function `loop'
2
tcp_lwip.ino:64: warning: undefined reference to `lwip_init'
3
tcp_lwip.ino:75: warning: undefined reference to `netif_add'
4
tcp_lwip.ino:84: warning: undefined reference to `netif_set_default'
5
tcp_lwip.ino:87: warning: undefined reference to `netif_set_up'
6
tcp_lwip.ino:94: warning: undefined reference to `dhcp_start'
7
tcp_lwip.ino:106: warning: undefined reference to `atsam3x8e_input(void*)'
8
tcp_lwip.ino:109: warning: undefined reference to `sys_check_timeouts'
9
tcp_lwip.ino:114: warning: undefined reference to `sys_check_timeouts'
10
tcp_lwip.ino:132: warning: undefined reference to `echo_init()'
11
tcp_lwip.ino:139: warning: undefined reference to `atsam3x8e_input(void*)'
12
tcp_lwip.ino:140: warning: undefined reference to `sys_check_timeouts'
13
tcp_lwip.ino:140: warning: undefined reference to `atsam3x8e_init(netif*)'
14
tcp_lwip.ino:140: warning: undefined reference to `ip_input'
15
tcp_lwip.ino:140: warning: undefined reference to `dhcp_timoutcntr'
16
tcp_lwip.ino:140: warning: undefined reference to `TxPerfConnMonCntr'
17
tcp_lwip.ino:140: warning: undefined reference to `TcpFastTmrFlag'
18
tcp_lwip.ino:140: warning: undefined reference to `TcpSlowTmrFlag'

Hab leider echt keine Ahnung woran es liegen könnte. Wenn ich in Visual 
Micro per rechtsklick auf eine Funktion gehe und dann auf "go to 
definition" etc., lässt sich diese allerdings finden!

Vielleicht ist hier ja jemand der weiß woran es noch liegen könnte. Wäre 
für die Hilfe echt dankbar!!!

Gruß Kilian

von Peter II (Gast)


Lesenswert?

Kilian Kellermann schrieb:
> Vielleicht ist hier ja jemand der weiß woran es noch liegen könnte

du hast vergessen die passende lib mit zu linken.

von Kilian K. (kellermaaan)


Lesenswert?

Schon mal danke für deine Hilfe!
Habe es mal probiert, aber dennoch bleiben paar Warnings! :/
1
tcp_lwip.cpp.o:In function `loop'
2
tcp_lwip.ino:65: warning: undefined reference to `atsam3x8e_init(netif*)'
3
tcp_lwip.ino:132: warning: undefined reference to `echo_init()'
4
tcp_lwip.ino:139: warning: undefined reference to `atsam3x8e_input(void*)'
5
tcp_lwip.ino:140: warning: undefined reference to `atsam3x8e_init(netif*)'

von Peter II (Gast)


Lesenswert?

Kilian Kellermann schrieb:
> Habe es mal probiert, aber dennoch bleiben paar Warnings! :/

das sind keine Warnungen!

Es fehlte einfach eine lib oder ein objectfile wo diese Funktionen 
enthalten sind.

von Kilian K. (kellermaaan)


Lesenswert?

Tut mir leid aber ich bin immer noch ratlos! Ich weiß echt nicht was ich 
noch machen soll oder hinzufügen soll... Ich habe echt alles 
eingebunden!

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Deinem Linkeraufruf fehlt die Library oder die Objektdatei, in der die 
aufgeführten Funktionen enthalten sind.

Mit dem Einbinden von Headerdateien ist das Problem nicht lösbar.

Eine *.h-Datei ist keine Library, auch wenn es hier zunehmend Leute 
gibt, die das so nennen.

von Kilian K. (kellermaaan)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Deinem Linkeraufruf fehlt die Library oder die Objektdatei, in der die
> aufgeführten Funktionen enthalten sind.

Wie kann ich das denn machen wenn ich nur einen Ordner voll mit .h - und 
.c-Dateien habe???

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Aha. Du hast also gar keine Library.


Ist denn dieser "Ordner voll mit Dateien" etwas von Dir geschaffenes 
oder kommt das mit der Beschreibung, daß das eine Library sein soll, von 
jemand anderem?

In letzterem Falle sollte da auch ein makefile vorhanden sein.

Im ersten Fall musst Du jede zu Deinem Projekt dazugehörende Datei in 
Dein makefile eintragen, bzw. in die Projektverwaltung Deines "Visual 
Micro" aufnehmen.
1
tcp_lwip.ino:65: warning: undefined reference to `atsam3x8e_init(netif*)'

Suche die *.c-Datei, in der diese Funktion enthalten ist - und sorge 
dafür, daß diese Datei compiliert wird (es also eine *.o-Datei gibt) 
und daß diese compilierte Datei auch dem Linker vorgeworfen wird.

von Kilian K. (kellermaaan)


Lesenswert?

Also es ist bisschen von beidem. Der Ordner ist von jemandem anderen, es 
war aber kein makefile dabei. Visual Micro hat mir aber auch keins 
gemacht...

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Naja, dann wirst Du Dich durch die Bedienung von "Visual Micro" 
durchbeißen müssen. Irgendwo wird es ja vermutlich eine Dokumentation 
davon geben, wie einzelne C-Source-Files zu einem Projekt hinzuzufügen 
sind.

Wieso eigentlich *.ino? Ist das so ein Arduino-Verschnitt?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.