Problem mit "undefined reference to" bei Ulrich Radigs Webmodul

Gast #3441816
Lesenswert?
• ▲
▼
Hallo zusammen,

ich versuche gerade vergeblich, ein Programm für das Webmodul nach 
Ulrich Radig 
(http://www.ulrichradig.de/home/index.php/avr/avr-webmodule) zu 
erstellen.

Ich wollte eigentlich bloß mal gucken, wie groß der Code schon ist und 
wie viel Platz ich für mein eigentliches Projekt noch übrig habe. Daher 
habe ich einfach nur versucht, die 1.1.06er SW zu kompilieren.

Neben ein paar Kleinigkeiten, die ich beseitigen konnte, bricht make 
immer an dieser Stelle ab:
1
Linking: Hexfiles/Webserver_MEGA644.elf
2
avr-gcc -mmcu=atmega644 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=main.o  -std=gnu99 main.o usart.o stack.o timer.o base64.o networkcard/enc28j60.o dns.o httpd.o telnetd.o ntp.o lcd.o wol.o http_get.o analog.o sendmail.o translate.o camera/cam.o camera/servo.o tcpservice/tcpcmd.o tcpservice/tcpsrv.o sdkarte/sdcard.o sdkarte/fat16.o sdkarte/sd.o sdkarte/sd_raw.o sdkarte/partition.o sdkarte/spi.o messung.o 1-wire/crc8.o 1-wire/onewire.o 1-wire/ds18x20.o rc5/rc5.o   --output Hexfiles/Webserver_MEGA644.elf -Wl,-Map=Hexfiles/Webserver_MEGA644.map,--cref -lm
3
ntp.o: In function `ntp_request':
4
A:\Dokumente\Programme\Webmodul\avr-webserver/ntp.c:104: undefined reference to `dns_request'
5
make.exe: *** [Hexfiles/Webserver_MEGA644.elf] Error 1

Ich habe natürlich erstmal recherchiert, was dieser Fehler bedeutet. Der 
Linker soll wohl die Funktion "dns_request" nicht finden. Ich verstehe 
allerdings nicht, warum. Die Funktion befindet sich in der Datei 
"dns.c". Diese ist im makefile mit "SRC += dns.c" eingebunden. In der 
Liste der .o Dateien ist die "dns.o" ja auch vorhanden. Woran kann es 
also liegen, dass der linker sich verschluckt?

Hier kurz die relevanten Teile aus dem Code:

dns.h
1
void dns_request(char *, uint32_t *);

dns.c
1
void dns_request(char *hostname, uint32_t *ip)
2
{
3
  _dns_qry(1, hostname, ip);  // A-Record anfragen
4
}

ntp.c
1
if ( tmp_ip == 0L ) {
2
  dns_request(NTP_SERVER, (uint32_t*)&ntp_server_ip[0]);
3
  ntp_timer = 4; // neuer Versuch nach 4 Sekunden
4
  NTP_DEBUG(" no IP **\r\n");
5
  return;
6
}

Ich bin für jede Hilfe dankbar!
Gast #3442176
Lesenswert?
• ▲
▼
Hallo Rufus,

danke für den Tipp! Die dns.o ist tatsächlich leer. Ich hatte die 
Nutzung der DNS Routine zwar eigentlich aktiviert, aber dies wird an 
anderer Stelle wieder aufgehoben. Die NTP Routine wird an dieser Stelle 
aber nicht mit abgeschaltet.

Ich werde jetzt mal beide möglichen Varianten (MMC/DNS/NTP an bzw. alle 
drei aus) ausprobieren.

Besten Dank!
Timo

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.