IDE 1.6.5 will not compile my sketch

I’m still learning, I created a sketch using 1.6.7 and it ran fine on the Uno, I want to finalize the project, thus purchased an Adafruit Trinket Pro. Had issues connecting the trinket and uploading a sketch. We’re all in such a huury, I did not read the manual, until NOW. Things were going well but my sketch would not run past the void setup. So trying to figure that out on my own…

So here is my issue.

I saw 1.6.8 was released, installed it. BAD MISTAKE. Now nothing will even compile. Even after reinstalling 1.6.5 which was recommended to use.

What to do now??? Please help… I was actually learning, now I’m just frustrated!

Arduino: 1.6.5 (Windows 7), Board: “Pro Trinket 5V/16MHz (USB)”

Build options changed, rebuilding all

avr-gcc: error: C:\Users\User\AppData\Local\Temp\build5911957281173605744.tmp/core.a: No such file or directory
Error compiling.

This report would have more information with
“Show verbose output during compilation”
enabled in File > Preferences.

Removed via windows uninstall.. Deleted the user/arduino folder. Reinstalled arduino 1.6.5 It then asked to create arduino folder so that it would stop talking about itself in the third person??? I tried just compiling the basic blink sketch with the following error message:

Arduino: 1.6.5 (Windows 7), Board: "Arduino/Genuino Uno"

Build options changed, rebuilding all

avr-gcc: error: C:\Users\User\AppData\Local\Temp\build533876283938920467.tmp/core.a: No such file or directory
Error compiling.

  This report would have more information with
  "Show verbose output during compilation"
  enabled in File > Preferences.

Please help...


#include <GPSfix_cfg.h>
#include <NeoGPS_cfg.h>
#include <NMEAGPS_cfg.h>

// #include <SPI.h>  // this sketch uses NeoSWSerial instead
// #include <Wire.h> // This  if for connecting I2C, again, not used.
// #include <Adafruit_GFX.h>//Adafruit Graphic Effects. Not used to, to save flash memory. GFX is a memory hog
#include <Adafruit_SSD1306.h>
#include <NeoSWSerial.h>

NeoSWSerial gps_port(4, 3);  //  assigns GPS to ports 4,3

#include "NMEAGPS.h"

static NMEAGPS  gps; // This parses the GPS characters

// If using software SPI (the default case):
#define OLED_MOSI   9
#define OLED_CLK   10
#define OLED_DC    11
#define OLED_CS    12
#define OLED_RESET 13

uint32_t timer;

void setup() {

  // connect at 115200 so we can read the GPS fast enough and echo without dropping chars


  // request RMC and GGA only
  gps_port.println( F("$PMTK314,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0*28") );


  display.clearDisplay();// Clears the adafruit splash screen from flash memory
  display.setCursor(15, 15);
  display.println( F("Mini-GPS"));
  display.setCursor(31, 40);
  display.print( F("Speedometer"));
  display.display(); // SEND SPLASH SCREEN
  delay(3000);       //  WAIT 3 SECONDS
  // timer = millis();

void loop()    // run over and over again

  while (gps_port.available()) {

    timer = millis(); // reset the timer

    if (gps.decode( ) == NMEAGPS::DECODE_COMPLETED) {

      if (gps.nmeaMessage == NMEAGPS::NMEA_RMC) {
        //  If your device emits a GGA then an RMC each second,
        //    change the above GGA to RMC.  Or if you don't get all
        //    the attributes (e.g., alt, heading, speed and satellites)
        //    try changing the above test.  NMEAorder.ino can be
        //    used to determine which one is last (should be used above).

        //  BTW, this is the safest place to do any time-consuming work,
        //    like updating the display.  Doing it elsewhere will cause GPS
        //    characters to be lost, and some fix data won't be available/valid.
        //    And if you take too long here, you could still lose characters.

        uint32_t displayTime = micros(); // use this later, to figure out how long the display process takes.

        display.clearDisplay(); //CLEAR THE OLED BUFFER, THUS CLEARING THE SCREEN:  GOT IT!

        const gps_fix & fix = gps.fix();

        //  construct data to be sent to the OLED *****************************


        display.setCursor(0, 0);
        display.print( F("Sat: "));

        if (fix.valid.satellites) {
          display.setCursor(30, 0);
          display.println( fix.satellites );

        if ( && fix.valid.time) {
          display.setCursor(95, 0);
          NeoGPS::clock_t seconds = (NeoGPS::clock_t) fix.dateTime;     // convert pieces to seconds
          seconds -= 4 * 60 * 60;                                      // offset seconds
          NeoGPS::time_t localTime( seconds );                        // convert seconds back to pieces

          if (localTime.hours < 10) {
            display.print( '0' );

          display.print( localTime.hours ); display.print( ':' ); // use pieces
          if (localTime.minutes < 10) {
            display.print( '0' );

          display.print( localTime.minutes);


        if (fix.valid.speed) {
          display.setCursor(23, 12);
          display.println( fix.speed_mph(), 0);


But even the basic blink sketch that is part of the download examples will not verify.

  Turns on an LED on for one second, then off for one second, repeatedly.

  Most Arduinos have an on-board LED you can control. On the Uno and
  Leonardo, it is attached to digital pin 13. If you're unsure what
  pin the on-board LED is connected to on your Arduino model, check
  the documentation at

  This example code is in the public domain.

  modified 8 May 2014
  by Scott Fitzgerald

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin 13 as an output.
  pinMode(13, OUTPUT);

// the loop function runs over and over again forever
void loop() {
  digitalWrite(13, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);              // wait for a second
  digitalWrite(13, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);              // wait for a second

This just made me a liar. I just tried it again and it worked... What the heck. Maybe it is my GPS sketch. I swear, nothing was working before.

Are you using a UNO or Trinket Pro? If you have the UNO selected in the Board menu, but a Trinket attached to the USB, then you will get that error. Set the Board to Pro Trinket 5V/16MHz (USB). Go to Adafruit's site to see what you need to do to get the Trinket to show up in the Board menu if it's not already there. I think they have a version of the IDE with all the trinket stuff already installed downloadable from their site, or you can install it yourself.

You've still got the new version of the AVR boards installed (it's buried in app data folder), that is incompatible with 1.6.5 (don't get me started...)

Tools -> Board Manager

Select Arduino AVR boards, choose 1.6.7 board version and click install. Restart IDE for good measure.