Can anyone shed any light on why the link step isn't seeing the setup and loop functions (these are defined in my Main.cpp, and look to be linked into the build).
I do not see Main.cpp being compiled anywhere in the build log. (main.cpp is compiled, but that's part of the core library. (BTW, I think it's a bad idea for your sketch to have the same name as one of the core library files except for capitalization...))
(oops. I assume Main.cpp was already compiled; I see the link includes it:/Programs/Arduino/0022/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin/avr-gcc -Os -lm -Wl,--gc-sections -mmcu=atmega328p -o source/Main.elf source/Main.o source/core.a
However, you're putting all the code in a library, which makes searching the library rather dependent on the order in which things are included. I think you need to put at least "main.o" outside of the library, and perhaps first in the list of .o files.