in de arduino.mk worden nog wat extra dingen toegevoegd. (ik denk deze: https://github.com/sudar/Arduino-Makefile ) Het is een arduino.mk om zonder arduino ide toch te kunnen compileren.
De main zit daar in.
( krijg het gevoel dat het best lang geleden is.)
Damic
Ben Belg sowat :D :: plaatjes zijn meestal klikbaar
@goof: blijkbaar heel lang geleden want je hebt de arduino ide nodig 
In ieder geval dit gevonden: http://stackoverflow.com/questions/12573816/what-is-an-undefined-refer… daar eens doorlezen.
edit: nog een gevonden met een oplossingen:
http://stackoverflow.com/questions/18549526/undefined-references-to-fu…
[Bericht gewijzigd door Damic op (26%)]
Ik heb TS zijn source even gepakt en geprobeerd te bouwen.
Omdat ik geen zin heb een IDE te installeren heb ik gewoon mijn standaard Makefile genomen, en alle bijna sources erin gezet.
oledgps.cpp heb ik als target genomen. main.cpp heb ik weggelaten.
Dat gaf deze foutmelding:
wiring_digital.c:(.text+0x6a): undefined reference to 'digital_pin_to_bit_mask_PGM'
"digital_pin_to_bit_mask_PGM" heb ik even gegoogled, en dat leert dat die normaal in pins_arduino.h gedefinieerd wordt. Wat verder zoeken leert dat de pins_arduino.h die TS had incompleet was. Dus even een goede gezocht, en voila:
Alles bouwt (met een paar warnings)...
Conclusie: TS heeft zijn IDE verkeerd ingesteld.
Makefile:
# Makefile
TARGET = oledgps
MCU=atmega328p
# put at end of mem in bootloader memory
SRC = twi.c WInterrupts.c wiring_analog.c wiring.c wiring_digital.c wiring_pulse.c wiring_shift.c
INCLUDE = .
CXXSRC = GOFi2cOLED.cpp TinyGPS++.cpp CDC.cpp HardwareSerial.cpp HID.cpp IPAddress.cpp new.cpp Print.cpp Stream.cpp Tone.cpp USBCore.cpp Wire.cpp WMath.cpp WString.cpp
F_CPU = 16000000
OBJCOPY = /usr/bin/avr-objcopy
OBJDUMP = /usr/bin/avr-objdump
CC = /usr/bin/avr-gcc
CXX = /usr/bin/avr-g++
SIZE = /usr/bin/avr-size
NM = /usr/bin/avr-nm
AR = /usr/bin/avr-ar
RM = /bin/rm -f
CXXFLAGS = -mmcu=$(MCU) -DF_CPU=$(F_CPU) -DARDUINO=100 -Os -I$(INCLUDE)
CFLAGS = -mmcu=$(MCU) -DF_CPU=$(F_CPU) $(C_DEFINES) -O2 -I$(INCLUDE)
LDFLAGS = -lm
# all objects
OBJ = $(SRC:.c=.o) $(CXXSRC:.cpp=.o) $(ASRC:.S=.o)
#default target
all: hex lss sym bin size
elf: $(TARGET).elf
hex: $(TARGET).ihex
eep: $(TARGET).eep
lss: $(TARGET).lss
sym: $(TARGET).sym
bin: $(TARGET).bin
#Display size
HEXSIZE = $(SIZE) --target=ihex $(TARGET).ihex
ELFSIZE = $(SIZE) $(TARGET).elf
size:
@if [ -f $(TARGET).elf ]; then echo; echo $(MSG_SIZE_AFTER); $(HEXSIZE); echo; fi
.SUFFIXES: .elf .ihex .eep .lss .sym .bin
# standard rules for building
.elf.ihex:
$(OBJCOPY) -j .text -j .data -j .buildstamp -O ihex $< $@
.elf.bin:
$(OBJCOPY) -j .text -j .data -j .buildstamp -O binary $< $@
.elf.eep:
-$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \
--change-section-lma .eeprom=0 -O ihex $< $@
# Create extended listing file from ELF output file.
.elf.lss:
$(OBJDUMP) -h -S $< > $@
# Create a symbol table from ELF output file.
.elf.sym:
$(NM) -n $< > $@
# Link: create ELF output file from library.
$(TARGET).elf: $(TARGET).cpp common.a
$(CC) $(CFLAGS) -o $@ $(TARGET).cpp -L. common.a $(LDFLAGS)
$(RM) buildstamp.o
common.a: $(OBJ)
@for i in $(OBJ); do echo $(AR) rcs common.a $$i; $(AR) rcs common.a $$i; done
$(RM) $(OBJ)
# Compile: create object files from C++ source files.
.cpp.o:
$(CXX) -c $(CXXFLAGS) $< -o $@
# Compile: create object files from C source files.
.c.o:
$(CC) -c $(CFLAGS) $< -o $@
clean:
$(RM) $(TARGET).ihex $(TARGET).eep $(TARGET).elf \
$(TARGET).map $(TARGET).sym $(TARGET).lss common.a \
$(OBJ) $(LST) $(SRC:.c=.s) $(SRC:.c=.d) $(CXXSRC:.cpp=.s) $(CXXSRC:.cpp=.d) \
$(TARGET).bin
.PHONY: all build elf hex eep lss sym program coff extcoff clean depend sizebefore sizeafter readfuse bin
Damic
Ben Belg sowat :D :: plaatjes zijn meestal klikbaar
Ha dan heeft den installer van Arduino problemen, want ik had nog bestanden dat er niet waren. Eens de zip downloaden en die uitpakken in de arduino map.
Trouwens de 328p gebruik ik niet
zal nog wel wat moeten aanpassen voor de 90can
Voor een 90can zul je zeker moeten aanpassen, want je gebruikt allerlei arduino-code die ervan uit gaat dat er een mapping is van het arduino pinnummer ('12' in digitalWrite(12,1) bijvoorbeeld) naar een bit in een Atmega SFR.
Als je dat niet goed hebt zal het wel bouwen en programmeren, maar in de praktijk waarschijnlijk niets doen.
Of roken als je pech hebt 
Edit: @damic hieronder. Apart, want mijn v1.0.5. heeft pins_arduino.h wel. En zonder die file gaat zelfs de blink scetch niet werken....
[Bericht gewijzigd door blurp op (16%)]
Damic
Ben Belg sowat :D :: plaatjes zijn meestal klikbaar
Ja maar eerst is het van: compileerd het en dan is het van werkt het 
Edit: wat ik helemaal niet grappig vind is dat pins_arduino.h zelf niet bij in het zip bestand (v1.0.6) zit was in de verkeerde map aan het zien
nu de beta versie aan het downloaden.
Damic
Ben Belg sowat :D :: plaatjes zijn meestal klikbaar
Juist een atmega8 aangesloten via usbasp, wil ik de source compileren in de laatste beta versie van arduino, krijg ik een mooie domme melding, dat er iets is fout gegaan maar voor de rest noegabollen.
Arduino: 1.5.8 (Windows 7), Board: "Arduino NG or older, ATmega8"
Using library Wire in folder: C:\Arduino\hardware\arduino\avr\libraries\Wire
Using library GOFi2cOLED in folder: C:\Arduino\libraries\GOFi2cOLED (legacy)
Using library TinyGPSPlus in folder: C:\Arduino\libraries\TinyGPSPlus (legacy)C:\Arduino/hardware/tools/avr/bin/avr-gcc -c -g -Os -w -ffunction-sections -fdata-sections -MMD -mmcu=atmega8 -DF_CPU=16000000L -DARDUINO=158 -DARDUINO_AVR_NG -DARDUINO_ARCH_AVR -IC:\Arduino\hardware\arduino\avr\cores\arduino -IC:\Arduino\hardware\arduino\avr\variants\standard -IC:\Arduino\hardware\arduino\avr\libraries\Wire -IC:\Arduino\libraries\GOFi2cOLED -IC:\Arduino\libraries\TinyGPSPlus C:\Users\damic\AppData\Local\Temp\build7059498318240703907.tmp\hooks.c -o C:\Users\damic\AppData\Local\Temp\build7059498318240703907.tmp\hooks.c.o
Error compiling.
handig he 
HA nu zien ik het, als ik het project opendoen krijg ik:
File name TinyGPS++.cpp is invalid: ignoredFile name TinyGPS++.h is invalid: ignored