This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Energia Tiva C "multiple definition of main()"

Other Parts Discussed in Thread: ENERGIA

I've got a simple program that compiles and runs perfectly when I use in Energia:

.
.
.
void setup() {
  // setup
}

void loop() {
  // loop
}

But when I convert to the C syntax:

.
.
.
int main() {
  // setup
  while (1) {
    // loop
  }
}

I get from Energia during compilation:

Here is the full program:

# include "inc/tm4c123gh6pm.h"
# include <stdint.h>
# include <stdbool.h>
# include "inc/hw_gpio.h"
# include "inc/hw_memmap.h"
# include "inc/hw_sysctl.h"
# include "inc/hw_types.h"
# include "driverlib/gpio.h"
# include "driverlib/sysctl.h"

#define LED_RED GPIO_PIN_1
#define LED_BLUE GPIO_PIN_2
#define LED_GREEN GPIO_PIN_3
#define EXTERNAL_LED GPIO_PIN_3
#define PUSH_BUTTON GPIO_PIN_4
#define readSW1 (!(GPIO_PORTF_DATA_R & PUSH_BUTTON))

#define TimebaseMs 4000

void WaitMs (int Amount) {
	volatile int j;
	int i;
	for (i=0;i<Amount;i++) {
		for (j=0;j<TimebaseMs;j++) {
			// Wait 1 ms
		}
	}
}

int SW1_now;
int SW1_before;

int main() {
	SysCtlClockSet(SYSCTL_SYSDIV_3|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ|SYSCTL_OSC_MAIN);
	// enable PORT F GPIO peripheral
	  SYSCTL_RCGC2_R = SYSCTL_RCGC2_GPIOF|SYSCTL_RCGC2_GPIOB;
	  // set LED PORT F pins as outputs
	  GPIO_PORTF_DIR_R |= LED_RED | LED_BLUE | LED_GREEN; // Outputs for the LEDs
	  GPIO_PORTB_DIR_R = EXTERNAL_LED; // Output for the external LED
	  GPIO_PORTF_DIR_R &=~ PUSH_BUTTON; // Pusbutton as input
	  GPIO_PORTF_PUR_R |= PUSH_BUTTON; // Pushbutton pullup resistor
	  // enable digital for LED PORT F pins
	  GPIO_PORTF_DEN_R = LED_RED|LED_BLUE|LED_GREEN|PUSH_BUTTON;
	  GPIO_PORTB_DEN_R = EXTERNAL_LED;
	  // clear all PORT F pins
	  GPIO_PORTF_DATA_R = 0;
	  GPIO_PORTB_DATA_R = 0;
	  // set LED PORT F pins high
	  GPIO_PORTF_DATA_R |= LED_RED|LED_BLUE|LED_GREEN;
	  GPIO_PORTF_DATA_R &=~ LED_BLUE;
	  GPIO_PORTB_DATA_R |= (1<<3);

	  // Init switch
	  SW1_before = readSW1;
	  // loop forever
	  while(1) {
		  GPIO_PORTB_DATA_R ^= EXTERNAL_LED;
		  WaitMs(1000);
	  }
}

Why am I getting this error?