mikrocontroller.net

Forum: Compiler & IDEs Linker error - undefined reference to `main'


Autor: Frank Bäßler (decil)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich hoffe ihr könnt mir weiterhelfen. Ich verzweifle hier
so langsam an einem Problem.
Ich habe mir aus dem I-Net eine CAN-Bibliothek heruntergeladen und
versuche diese mit nem makefile zu erstellen. Bekomme aber immer
folgenden Linkerfehler...

Eigentlich möchte ich die can.elf in ins AVRStudio einbinden.
Habe die kompletten Sourcen angehängt.

Linking: can.elf
avr-gcc -mmcu=at90can64 -I. -gdwarf-2 -DF_CPU=16000000UL -Os 
-funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall 
-Wstrict-prototypes -Wa,-adhlns=build/mcp2515.o -I../ -std=gnu99 -Wundef 
-MMD -MP -MF .dep/can.elf.d build/mcp2515.o build/mcp2515_buffer.o 
build/mcp2515_get_message.o build/mcp2515_send_message.o 
build/mcp2515_set_dyn_filter.o build/mcp2515_get_dyn_filter.o 
build/mcp2515_static_filter.o build/mcp2515_write_id.o 
build/mcp2515_read_id.o build/mcp2515_error_register.o 
build/mcp2515_regdump.o build/mcp2515_set_mode.o build/mcp2515_sleep.o 
build/spi.o build/at90can.o build/at90can_buffer.o 
build/at90can_disable_dyn_filter.o build/at90can_set_dyn_filter.o 
build/at90can_get_dyn_filter.o build/at90can_send_message.o 
build/at90can_send_buf_message.o build/at90can_get_message.o 
build/at90can_get_buf_message.o build/at90can_error_register.o 
build/at90can_set_mode.o build/sja1000.o build/sja1000_buffer.o 
build/sja1000_send_message.o build/sja1000_get_message.o 
build/sja1000_error_register.o build/can_buffer.o --output can.elf 
-Wl,-Map=can.map,--cref     -lm
c:/winavr-20090313/bin/../lib/gcc/avr/4.3.2/../../../../avr/lib/avr5/crt 
can64.o:(.init9+0x0):  undefined reference to `main'
make.exe: *** [can.elf] Error 1

Autor: Floh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Frank Bäßler schrieb:
> undefined reference to `main'

wo ist deine int main im programm?
Die kann der Linker nicht finden. :-)

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn das wirklikch eine library werden soll, die du später zu einem 
anderen Projekt hinzulinken willst, muß das alles auch als library 
kompiliert werden.

Mach dir per MFile ein passendes makefile, damit geht das. Mit den 
automatisch von AVRStudio erzeugten makefiles geht es nicht.

Oliver

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oliver schrieb:
> muß das alles auch als library
> kompiliert werden.

soll natürlich heißen: muß als library gelinkt werden. Dem Conpiler ists 
egal.

Oliver

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.