Compile Error

My first time with a arduino UNO 3 (or any micro controller)

Error msg:

/usr/share/arduino/hardware/arduino/cores/arduino/main.cpp:14: undefined reference to `loop'
collect2: error: ld returned 1 exit status

I have searched for loop with no success in this sketch, this is to turnon a relay

/*
Teleduino328.h - Teleduino328 library
Version 328-0.6.9
Nathan Kennedy 2009 - 2014
http://www.teleduino.org

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*/

#ifndef Teleduino328_h
#define Teleduino328_h

#define TD328_PINS 22
#define TD328_SERVO_INSTANCES 6
#define TD328_SHIFT_REGISTERS 2
#define TD328_SHIFT_REGISTER_TIMERS 8

#include <Arduino.h>
#include <EEPROM.h>
#include <Servo.h>
#include <Wire.h>

// Used for Teleduino328Class::getFreeMemory()
extern unsigned int __data_start;
extern unsigned int __data_end;
extern unsigned int __bss_start;
extern unsigned int __bss_end;
extern unsigned int __heap_start;
extern void *__brkval;

typedef struct
{
byte mode;
byte expireAction;
unsigned long expireTime;
} Pin;

typedef struct
{
Servo servo;
byte position;
} ServoInstance;

typedef struct
{
byte clockPin;
byte dataPin;
byte enablePin;
byte latchPin;
byte outputs[32];
} ShiftRegister;

typedef struct
{
byte shiftRegister;
byte action;
unsigned long expireTime;
byte outputs[32];
} ShiftRegisterTimer;

class Teleduino328Class
{
protected:
boolean _reset;
Pin _pins[TD328_PINS];
ServoInstance _servoInstances[TD328_SERVO_INSTANCES];
ShiftRegister _shiftRegisters[TD328_SHIFT_REGISTERS];
ShiftRegisterTimer _shiftRegisterTimers[TD328_SHIFT_REGISTER_TIMERS];
byte _statusLedPin;
char _version[17];
boolean _wireDefined;
public:
Teleduino328Class();
boolean checkAnalogPin(byte);
boolean checkDigitalPin(byte);
boolean checkPwmPin(byte);
void checkReset();
boolean definePinMode(byte, byte);
int getFreeMemory();
byte hexDecode(byte);
byte hexEncode(byte, boolean);
byte hexEncode(byte);
void instruction(byte*);
void loadPresets();
void pinTimers();
void reset();
boolean setDigitalOutput(byte, byte, unsigned int, byte);
boolean setDigitalOutput(byte, byte, unsigned int);
boolean setDigitalOutput(byte, byte);
void setStatusLed(unsigned int, boolean, long);
void setStatusLed(unsigned int, boolean);
void setStatusLed(unsigned int, long);
void setStatusLed(unsigned int);
boolean setStatusLedPin(byte);
void shiftRegisters();
void shiftRegisterTimers();
};

extern Teleduino328Class Teleduino328;

#endif

Any assistance would be appreciated

that's the problem... an arduino project expects a loop() and a setup() function

that's a blank project

void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:

}

that's because the main.c the is hidden from you and generated / used by the IDE when compiling does this

int main(void)
{
	init();

	initVariant();

#if defined(USBCON)
	USBDevice.attach();
#endif
	
	setup();
    
	for (;;) {
		loop();
		if (serialEventRun) serialEventRun();
	}
        
	return 0;
}

so as you can see it calls once setup() and then loop() in a infinite loop.

(deleted)

Many thank!

I hope to do many projects in the future, nice to know I have experts if I can't figure it out myself.

I must have misunderstood what was given.

void setup() {
// put your setup code here, to run once:

}

void loop() {
// put your main code here, to run repeatedly:

}

I have tired pasting the library before and after each statement, still not working, it will compile but not upload

It is not a sketch. It is a library. It is sonething you call from your program (which you don't have). It even clearly calls itself a library in its comments on top.

Need to read more know what you mean just not how. Is a big bite for a noob

An Arduino sketch is the stuff you write to do whatever you want to do, and as said above contains a setup() and loop() sections.

A library is code that someone else wrote (although of course one day you may write your own) to provide functionality that the library author thought might be useful becasue it will be used over and over by many people.

So if you look for instance at the example sketches in the IDE at File > Examples > Liquid Crystal > Hello World, you'll see a line near the top of that sketch that says

#include <LiquidCrystal.h>

That line calls the LiquidCrystal library into the sketch, and it's a library that contains a whole lot of lcd-related functionality to do things like blank the display or move the cursor or display characters. Someone wrote that to make it easy for the rest of us to use an lcd without having to worry about the techy details of what's happening.

So similarly, you would write a sketch containing setup() and loop() and with an include line calling your library, to make that library's functionality (ie, someone else's thinking and hard work) available in your sketch.

(Libraries can call other libraries: if you look near the top of your library, you'll see a number of includes doing exactly that.)

You need to open up one of the example provided with the library and upload that into your arduino+ethernet shield.

Telediino is documented, you can read this instructable Arduino Control Via a Web Service With Teleduino to get started and check out the tutorials

I would recommend you learn the fundamentals of arduino separately unless you just want to make a quick thing without coding anything

Was hoping for a quick way to turn on printers from a remote computer.

That being said, looks like more of a learning project than I expected. I was thinking download this upload to hardware and instant solution. Not working out that way.

I will get it working just not as imagined when starting from scratch(never is it seems)

Thanks(truly) for showing me what I don't know, and patients while doing it. I'll get there!

Really it's just compile and upload the existing example and you'll be in business - with a relay attached on a pin That is the tutorial for this (purchase an integrated relay on a board and you don't need all the components).