Hallo Community,
ich programmiere momentan für einen AVR Microcontroller (atmega32) und für das dazugehörige Funkmodul RFM12 in C. Dazu habe ich mir diese Bibliothek besorgt. Das Programm steht soweit, jedoch kriege ich folgende Fehler beim Linken:
Die gesuchten Funktionen, nach dem Schema
werden in der Bibliothek definiert und auch von mir eingebunden: Ich includiere own_rfm12.h, welche wiederum rfmlib/rfm12.h (also die Bibliothek) einbindet. Die dazugehörige Sourcedatei ist ebenfalls miteingelinkt. (Sie wird wie in der Doku empfohlen in own_rfm12.c eingebunden). Wie gesagt erhalte ich einen "Undefined reference to..." Error. Eine Vorwärtsdeklaration hilft ebenfalls nicht:
Includiere ich die Implementierungsdatei der Funktionen seperat mit "#include "rfmlib/rfm12.c"", so bekomme ich Fehler nach dem Schema
Wie kann ich die Funktionen nun nutzen? Im Anhang findet ihr den kompletten Code des Prototypen (daher der grottige Code)
mfg
bad_alloc
EDIT: das ganze wird auf Ubuntu 8.10 mit der IDE Code::Blocks definiert, die den Compiler avr-gcc nutzt.
ich programmiere momentan für einen AVR Microcontroller (atmega32) und für das dazugehörige Funkmodul RFM12 in C. Dazu habe ich mir diese Bibliothek besorgt. Das Programm steht soweit, jedoch kriege ich folgende Fehler beim Linken:
Code:
Linking console executable: bin/Debug/testprog1.elf
obj/Debug/main.o: In function `main':
/home/Name/Desktop/rfm12/test-atmega32/testprog1/main.c:55: undefined reference to `rfm12_rx_status'
/home/Name/Desktop/rfm12/test-atmega32/testprog1/main.c:57: undefined reference to `rfm12_rx_len'
/home/Name/Desktop/rfm12/test-atmega32/testprog1/main.c:58: undefined reference to `rfm12_rx_type'
/home/Name/Desktop/rfm12/test-atmega32/testprog1/main.c:64: undefined reference to `rfm12_rx_clear'
Code:
static inline uint8_t rfm12_rx_status(void)
{
return ctrl.rf_buffer_out->status;
}
Code:
static inline uint8_t rfm12_rx_len(void);
=> warning: ‘rfm12_rx_len’ used but never defined|
Code:
/home/Name/Desktop/rfm12/test-atmega32/testprog1/./rfmlib/rfm12.c|343|multiple definition of `rfm12_tick'
mfg
bad_alloc
EDIT: das ganze wird auf Ubuntu 8.10 mit der IDE Code::Blocks definiert, die den Compiler avr-gcc nutzt.
Zuletzt bearbeitet: