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


von Frank B. (decil)


Angehängte Dateien:

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

von Floh (Gast)


Lesenswert?

Frank Bäßler schrieb:
> undefined reference to `main'

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

von Oliver (Gast)


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

von Oliver (Gast)


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

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.