Function conversion and compiler refuses to see functions but does

Status
Not open for further replies.

Duhjoker

Well-known member
[Solved] Function conversion and compiler refuses to see functions but does

hi guys

I'm trying to update a teensy atmega graphical program to work with teensy. All that needed to be done was give it a new set of graphics library files dropped in and the sketch initializations to match. So I did just that adding anything from the original library that came with the program that was needed by the program. Most of it was updating functions from drawRectangel() to drawRect().
but my graphics library was missing 4 functions a drawchar() function and these.....

Code:
void TFT::drawString(char *string,INT16U poX, INT16U poY, INT16U size,INT16U fgcolor)
{
    while(*string)
    {
        drawChar(*string, poX, poY, size, fgcolor);
        *string++;

        if(poX < MAX_X)
        {
            poX += FONT_SPACE*size;                                     /* Move cursor right            */
        }
    }
}

void TFT::drawCenteredString(char *string,INT16U poy, INT16U size,INT16U fgcolor)
{
    int len = strlen (string)* FONT_SPACE * size;
    int left = (MAX_X - len ) / 2;
    
    drawString( string, left, poy, size, fgcolor);
}

I transplanted them but the compiler gave me errors so I found these here on the pjrc forum........
Code:
// Draw string centered
void Grafx::drawStringCenter(int16_t x, int16_t y, const char *string, int8_t size, uint16_t color)
{
    if(string!=NULL)
    {
        setTextColor(color);
	setTextScale(fontSize);
	setCursor(x - (strlen(string)*3*fontSize), y-(4*fontSize), SCREEN);
	while(*string)
	   write(*string++);
    }
}

// Draw string
void Grafx::drawString(int16_t x, int16_t y, const char *string, int8_t size, uint16_t color)
{
    if(string!=NULL)
    {
	setTextColor(color);
	setTextScale(fontSize);
	setCursor(x,y);
	while(*string)
            write(*string++);
    }
}

But it was giving me problems with the drawnumber function so I fixed the original functions to this........

Code:
void Grafx::drawCenteredString(char *string,uint16_t y, uint16_t size,uint16_t color)
{
    int len = strlen (string)* FONT_SPACE * size;
    int left = (MAX_X - len ) / 2;
    
    drawString( string, left, y, size, color);
}

void Grafx::drawString(char *string,uint16_t x, uint16_t y, uint16_t size, uint16_t color)
{
    while(*string)
    {
        drawChar(*string, x, y, size, color);
        *string++;

        if(x < MAX_X)
        {
            x += FONT_SPACE*size;                                     /* Move cursor right            */
        }
    }
}

void Grafx::drawChar( uint8_t ascii, uint16_t x, uint16_t y, uint16_t size, uint16_t color)
{
    if((ascii>=32)&&(ascii<=127))
    {
        ;
    }
    else
    {
        ascii = '?'-32;
    }
    for (int i =0; i<FONT_X; i++ ) {
        uint8_t temp = pgm_read_byte(&simpleFont[ascii-0x20][i]);
        for(uint8_t f=0;f<8;f++)
        {
            if((temp>>f)&0x01)
            {
                fillRect(x+i*size, y+f*size, size, size, color);
            }

        }

    }
}

uint8_t Grafx::drawNumber(long long_num, uint16_t x, uint16_t y, uint16_t size, uint16_t color)
{
    uint8_t char_buffer[10] = "";
    uint8_t i = 0;
    uint8_t f = 0;

    if (long_num < 0)
    {
        f=1;
        drawChar('-',x, y, fontSize, color);
        long_num = -long_num;
        if(x < MAX_X)
        {
            x += FONT_SPACE*fontSize;                                     /* Move cursor right            */
        }
    }
    else if (long_num == 0)
    {
        f=1;
        drawChar('0',x , y, fontSize, color);
        return f;
    }

    while (long_num > 0)
    {
        char_buffer[i++] = long_num % 10;
        long_num /= 10;
    }

    f = f+i;
    for(; i > 0; i--)
    {
        drawChar('0'+ char_buffer[i - 1],x , y, fontSize, color);
        if(x < MAX_X)
        {
            x+=FONT_SPACE*fontSize;                                       /* Move cursor right            */
        }
    }
    return f;
}


so heres the thing. I get these errors when I compile.....

Code:
C:\Users\chuck\AppData\Local\Temp\arduino_build_173695\sketch\tetris.cpp: In member function 'void Tetris::scoreBoard()':

C:\Users\chuck\AppData\Local\Temp\arduino_build_173695\sketch\tetris.cpp:548:9: error: 'class Grafx' has no member named 'drawString'

     tft.drawString(8,8,"Level", 2, YELLOW);

         ^

C:\Users\chuck\AppData\Local\Temp\arduino_build_173695\sketch\tetris.cpp:549:9: error: 'class Grafx' has no member named 'drawString'

     tft.drawString(8,32,"Lines", 2, 0x3f);

         ^

C:\Users\chuck\AppData\Local\Temp\arduino_build_173695\sketch\tetris.cpp:550:9: error: 'class Grafx' has no member named 'drawNumber'

     tft.drawNumber(level, 74, 8, 2, YELLOW);

         ^

C:\Users\chuck\AppData\Local\Temp\arduino_build_173695\sketch\tetris.cpp:551:9: error: 'class Grafx' has no member named 'drawNumber'

     tft.drawNumber(lines, 74, 32, 2, 0x3f);

         ^

teensy_tetris: In function 'void drawPreGameScreen()':
teensy_tetris:85: error: 'class Grafx' has no member named 'drawCenteredString'
   tft.drawCenteredString("Tetris", 40, 8, BLUE);

       ^

teensy_tetris:86: error: 'class Grafx' has no member named 'drawCenteredString'
   tft.drawCenteredString("Click to play", 110, 2, BLACK);

       ^

teensy_tetris:87: error: 'class Grafx' has no member named 'drawCenteredString'
   tft.drawCenteredString("http://vilaca.eu", 220, 2, PURPLE);

       ^

teensy_tetris: In function 'void gameOver()':
teensy_tetris:94: error: 'class Grafx' has no member named 'drawString'
   tft.drawString("Game Over", 48, 94, 4, 0x3ffff);

       ^

Multiple libraries were found for "SD.h"
 Used: C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SD
 Not used: C:\Program Files (x86)\Arduino\libraries\SD
'class Grafx' has no member named 'drawCenteredString'

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

If I cause one of the functions to error it gives me the error then the messages above

included are both the Arduino and T3 versions

View attachment teensytetrispjrc.zip
 
Last edited:
maybe this?

void Grafx::drawCenteredString(char *string,uint16_t y, uint16_t size,uint16_t color)

vs
tft.drawString(8,8,"Level", 2, YELLOW);

there are some swaps of string and x,y location for the different functions, maybe there is a slight screw-up?
 
It would definitely tell me and give candidates. Like I said if I cause an error it tells me then says the functions don't exist with in the class.

I was looking at where the errors stem from and it says c/users/chuck/appdata/local/temp/arduino build..... Why is it using temp data to compile instead reading from the Grafx file?
 
Last edited:
Because Arduino likes to copy things, in particular for .INO files as these files are preprocessed into a .cpp file that gets compiled. The Arduino code takes care of things likeadding forward references for functions and the like.

If it can not find a function then it either does not exist or maybe it exists but the parameter lists are not the same. ...
 
here's a working tetris with original sound:
https://github.com/FrankBoesing/T3TRIS

We fixed this for buttons the other day but when you flip the screen to to landscape as is set up on my console, it cuts off the bottom of the screen. The version I'm trying to update can be used in any direction with out cutting off the playing field. Plus it has break out too.

Would any of you have noticed if I fudged something on the transposed functions themselves? This is the first time I've had to rebuild a function like so.
 
ok the functions do exist in the library, you can see it in the attached files above. Unless there is something wrong with the way I transposed the original code. I'm also giving the right arguments as they derive from the transposed code. So I tried to comment out the functions in the code but this Arduino making and using copies is a problem. when I try to compile with out those functions it tells me it has multiple copies and gives errors.

how do I fix this?

Code:
C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::Grafx(unsigned char, unsigned char, unsigned char, unsigned char, unsigned char)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:28: multiple definition of `Grafx::Grafx(unsigned char, unsigned char, unsigned char, unsigned char, unsigned char)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:33: first defined here

c:/program files (x86)/arduino/hardware/tools/arm/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/bin/ld.exe: Disabling relaxation: it will not work with multiple definitions

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::Grafx(unsigned char, unsigned char, unsigned char, unsigned char, unsigned char)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::useBacklight(unsigned char)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::backlight(bool)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::useFrameBuffer(bool)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::freeFrameBuffer()'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::update()'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::updateAll()'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::setFrameRate(unsigned char)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::titleScreen(__FlashStringHelper const*)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::titleScreen(unsigned char const*)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::titleScreen()'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::getCpuLoad()'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::getFreeRam()'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::popup(__FlashStringHelper const*, unsigned char)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::updatePopup()'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::_sendInitData(unsigned char, unsigned char const*)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::getErrorCode()'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::changeMode(Grafx_modes)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::getMode()'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::setPartialArea(unsigned short, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::getRotation()'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::setRotation(unsigned char)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::width() const'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::height() const'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::cgWidth() const'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::cgHeight() const'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::getScrollTop()'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::getScrollBottom()'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::defineScrollArea(short, short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::getScrollDirection()'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::setScrollDirection(unsigned char)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::scroll(short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::gradient(unsigned char)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::colorInterpolation(unsigned char, unsigned char, unsigned char, unsigned char, unsigned char, unsigned char, unsigned short, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::colorInterpolation(unsigned short, unsigned short, unsigned short, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::setBackground(unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::setForeground(unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::getBackground()'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::getForeground()'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::setArcParams(float, int)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::cosDeg_helper(float)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::sinDeg_helper(float)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::pushData(unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::endPushData()'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::pushColor(unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::getBitmapPixel(unsigned char const*, unsigned short, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::collidePointRect(short, short, short, short, short, short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::collideRectRect(short, short, short, short, short, short, short, short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::collideBitmapBitmap(short, short, unsigned char const*, short, short, unsigned char const*)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::getCursor(short&, short&)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::setTextScale(unsigned char)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::setTextScale(unsigned char, unsigned char)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::setTextColor(unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::setTextColor(unsigned short, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::setTextWrap(bool)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::setCharSpacing(unsigned char)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::setFontInterline(unsigned char)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::_getCharCode(unsigned char)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::_STRlen_helper(char const*, int)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::setFont(tFont const*)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::setInternalFont()'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::_pushColors_cont(unsigned short, unsigned long)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::setAddrWindow_cont(unsigned short, unsigned short, unsigned short, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::drawLine_cont(short, short, short, short, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::drawLine(short, short, short, short, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::drawQuad(short, short, short, short, short, short, short, short, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::drawPolygon(short, short, unsigned char, short, float, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::drawTriangle(short, short, short, short, short, short, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::drawRect(short, short, short, short, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::drawArcHelper(unsigned short, unsigned short, unsigned short, unsigned short, float, float, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::plot4points_cont(unsigned short, unsigned short, unsigned short, unsigned short, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::drawEllipse(short, short, short, short, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::drawCircle_cont(short, short, short, unsigned char, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::drawCircle(short, short, short, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::fillCircle_cont(short, short, short, unsigned char, short, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::fillCircle(short, short, short, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::drawRoundRect(short, short, short, short, short, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::fillTriangle_cont(short, short, short, short, short, short, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::fillQuad(short, short, short, short, short, short, short, short, unsigned short, bool)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::ringMeter(int, int, int, unsigned char, unsigned char, unsigned char, unsigned short, unsigned short, int, unsigned char)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::fillTriangle(short, short, short, short, short, short, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::clearMemory()'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::setArea(unsigned short, unsigned short, unsigned short, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::setCursor(short, short, Grafx_centerMode)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::fillScreen(unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::begin(bool)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::clearScreen()'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::fillRect_cont(short, short, short, short, unsigned short, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::_charLineRender(bool*, int, short, short, unsigned char, unsigned char, short, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::_glyphRender_unc(unsigned char const*, short, short, int, int, unsigned char, unsigned char, unsigned short, unsigned char, unsigned short, unsigned short, bool)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::_renderSingleChar(char)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::_textWrite(char const*, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::fillRect(short, short, short, short, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::fillRoundRect(short, short, short, short, short, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::fillRect(short, short, short, short, unsigned short, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::fillScreen(unsigned short, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::startPushData(unsigned short, unsigned short, unsigned short, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::drawIcon(short, short, tIcon const*, unsigned char, unsigned short, unsigned short, bool)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::drawImage(short, short, tPicture const*, Grafx_iconMods, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::drawLineAngle(short, short, int, unsigned char, unsigned char, unsigned short, int)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::drawFastVLine(short, short, short, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::drawFastHLine(short, short, short, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::drawMesh(short, short, short, short, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::drawBitmappc2(short, short, unsigned char const*, short, short, unsigned short, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::drawBitmap4(short, short, unsigned char*, short, short, unsigned short, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::drawBitmap2(short, short, unsigned char const*, short, short, unsigned short, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::drawBitmappc1(short, short, unsigned char const*, short, short, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::drawBitmap3(short, short, unsigned char*, short, short, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::drawBitmap1(short, short, unsigned char const*, short, short, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::drawBitmapTm(short, short, short, short, unsigned char const*, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::drawTilemap(int, int, unsigned char const*, unsigned char const**, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::drawTilemap(int, int, unsigned char const*, unsigned char const**, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::drawLineAngle(short, short, int, unsigned char, unsigned short, int)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::boundaryCheck(short, short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::sizeCheck(short, short, short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\libraries\GameRIot\Grafx.cpp.o: In function `Grafx::write(unsigned char const*, unsigned int)':

C:\Users\chuck\OneDrive\Documents\Arduino\libraries\GameRIot/Grafx.cpp:1138: multiple definition of `Grafx::bmpDraw(char*, unsigned char, unsigned short)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch\Grafx.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_207025\sketch/Grafx.cpp:1260: first defined here

collect2.exe: error: ld returned 1 exit status

Multiple libraries were found for "SD.h"
 Used: C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SD
 Not used: C:\Program Files (x86)\Arduino\libraries\SD
Error compiling for board Teensy 3.6.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
 
Why is it using temp data to compile instead reading from the Grafx file?

The Arduino IDE has 2 features that pretty much require creating a copy in the temporary directory.

The simplest is Arduino lets you try stuff without saving. Most other system save you work every time you build. Whether this is important is debatable, but the idea behind this feature is encouraging experimentation. You can try things without the commitment of saving the actual permanent files.

The other more complex feature is Arduino does some pre-processing to automatically include headers and automatically generate function prototypes, so you can have your functions in any order without the usual C/C++ requirement to first declare them.

Not everyone agrees these are valuable, and in fact many experienced programmers find this stuff annoying. But regardless of how you fell about the value vs annoyance, these the features of the Ardiuno IDE that really can't be implemented without the creation of a copy of your code in a temporary folder.
 
Definitely annoying. I did some searching on my computer and found like 3 different documents libraries for arduino. The ones you add libraries to both the one program files86. They were listed in the stupid one drive thing Microsoft does now. Removing these two extra places helped. The other part is pure rookie BS.

To make things easier and since the library was written so originally, I added my own graphics files as said above. I changed most of the includes to "" over <> so it was trying to pull the graphics functions from a library that did exist but with out that function. So I changed <> back to "" and it compiles. I can't believe I spent a whole day trying to fix that. Well I learned something at least.

Also my converted drawstring and number functions work so thats cool as well.
 
I am about to lose my freaking mind!!!!!!!!!!!!!!!!

I'm trying to change a function in a .cpp file and the stupid compiler is doubling the changes and writing it to the freaking temp file and will not allow me to compile because it's reading multiple copies of the freaking function. I have......

Completely removed the files from the arduino library

Re-saved it to a diferrent spot then deleted the old version then replaced it back to arduino.

I have removed the file in question, altered it using a text editor saved it then replaced the file back into the program file.

I removed the data from with in the temp file and it just puts it back and redoubles.

I have made sure that all files needed are included in the file including the bounce library and I am using "" instead of <> to include files.

I have even gone through and cleaned out the system temp files using disk clean up then turning off the computer and restarting it after a few minutes.

I don't know what to do stop this!!!

Code:
C:\Users\chuck\AppData\Local\Temp\arduino_build_480446\sketch\Tetris.cpp.o:(.bss.ButtonB+0x0): first defined here

c:/program files (x86)/arduino/hardware/tools/arm/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/bin/ld.exe: Disabling relaxation: it will not work with multiple definitions

C:\Users\chuck\AppData\Local\Temp\arduino_build_480446\sketch\teensy_tetris.ino.cpp.o: In function `Tetris::run()':

C:\Users\chuck\AppData\Local\Temp\arduino_build_480446\sketch/tetris.cpp:164: multiple definition of `ButtonRight'

C:\Users\chuck\AppData\Local\Temp\arduino_build_480446\sketch\Tetris.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_480446\sketch/Tetris.cpp:605: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_480446\sketch\teensy_tetris.ino.cpp.o: In function `Tetris::run()':

C:\Users\chuck\AppData\Local\Temp\arduino_build_480446\sketch/tetris.cpp:164: multiple definition of `ButtonLeft'

C:\Users\chuck\AppData\Local\Temp\arduino_build_480446\sketch\Tetris.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_480446\sketch/Tetris.cpp:605: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_480446\sketch\teensy_tetris.ino.cpp.o: In function `Tetris::run()':

C:\Users\chuck\AppData\Local\Temp\arduino_build_480446\sketch/tetris.cpp:164: multiple definition of `ButtonDown'

C:\Users\chuck\AppData\Local\Temp\arduino_build_480446\sketch\Tetris.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_480446\sketch/Tetris.cpp:605: first defined here

collect2.exe: error: ld returned 1 exit status

Multiple libraries were found for "SD.h"
 Used: C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SD
 Not used: C:\Program Files (x86)\Ardu


heres what I tried to change....

Code:
void userInput(unsigned long now)
  {

//   if (ButtonA.update());
   if (ButtonLeft.update());
   if (ButtonRight.update());

    unsigned long waited = now - lastInput;

    int jx = Joystick::getX();    

    int move = INPUT_WAIT_MOVE / jx;

    if ( jx < (ButtonRight.fallingEdge()) > -move); //////////// this
    {
      if  (x > 0 && !touches(-1, 0, 0))
      {
        x--;
        lastInput = now;
        draw();
      }
    }
     if ( jx > (ButtonLeft.fallingEdge()) > move ) //////////////this
    {
      if ( x < BOARD_WIDTH && !touches(1, 0, 0))
      {
        x++;
        lastInput = now;
        draw();
      }
    }
    
    if ( Joystick::fire() )
    {
      while ( !touches(0, 1, 0 ))
      {
        y++;
      }
      lastInput = now;
      draw();
    }

    int my = Joystick::getY();
    if (( my == -Joystick::HARD && waited > INPUT_WAIT_ROT ) || ( my == -Joystick::HARDER && waited > INPUT_WAIT_ROT / 2 ))
    {
      if (Joystick::getY() < 0 && !touches(0, 0, 1))
      {
        rot++;
        rot %= shapes[current];
        lastInput = now;
        draw();
      }
    }
  }

[/code
 
Last edited:
I tried looking at the code you posted in your first message, but it doesn't seem to be the same. If you post the whole code that's giving you this error, we could do much more to help.
 
I'm not familiar with the Arduino IDE... Sloeber (Eclipse with Arduino und Teensyduino plugins) lets me clean and (re-)build a project in the classic C-way, a procedure which rewrites the temporary files, too. Isn't there a similar function in the Arduino IDE ?
 
As Paul said, your current setup does not match your current stuff, so not likely can help. Also the stuff you posted was not complete as it relies on several other files not included. If I remember correctly things like config.cpp and sound.h (maybe different it was yesterday...)

But a hint, of one thing that has bitten me in the past...

Suppose you have a library, which has several files in it. For example suppose it has in it files like display.h and display.cpp as well well as maybe sounds.h and sounds.cpp... Then suppose you make a local copy of one of them in your sketch (or different library)...

When you build, the Arduino IDE more or less searches and finds each of the library header files that are needed and then it will setup to compile ALL .cpp files that are contained in those folders and include it into your binary... So if you have two different files that contain the same class, it will include both! If you have not already done so, turn on Verbose compilation in preferences and you can see everything that is being built... And also make sure to turn on see all warnings...

Sometimes when I am developing something like this, I will temporarily cheat and make a new Arduino sketch with all of the files (no libraries except standard ones like wire, spi...)
I will then rename all of the files, like change display.h, display.cpp to _display.h _display.cpp. Sort of a pain as you need to manually change header file names in #include and "" <>
But it makes it quick to edit in the IDE as all of the files are there as tabs... Note: sometimes this copy hangs around as other found them easier to use as well...
 
Ok I just cleaned out every thing but libraries contained in zip form. The unzipped the library I'm using and placed it back into the arduino libraries folder. I then tried to compile a demo test but now it's say that Grafx.h does not exist. Of course it freaking exists.
 
Which OS are you compiling with? Windows, or Mac or Linux? The reason I ask, is on some platforms file names are case sensitive. That is if your source file, you ask for
#include <GrafX.h>
But your file name is Grafx.h it won't find the file.

Edit Guessing you are using windows... as I see Onedrive mentioned in the stuff.

Also if the file is in your sketch folder and not a library:
if you do #include <Grafx.h> it may not find it, so then try #include "Grafx.h"
 
I'm trying to do a clean install of arduino and teensy. When I get to installing teensy, it gives me an error about trying to write to a file and tells me to re-install arduino. I've done this with both teensy 1.8.1 and 1.8.2. Now I'm gonna try 1.8.0

Teensy installer 1.36

It won't even try to install to 1.8.0. It gets to the placement screen and stops.

I can't even install to the Windows installer versions of arduino? WTT?
 
Last edited:
it gives me an error about trying to write to a file and tells me to re-install arduino.

Often these errors are caused by anti-virus software or Windows Defender.

It won't even try to install to 1.8.0.

Of course not. 1.8.0 isn't supported. The supported versions of Arduino are listed on the web page where you downloaded the installer, and on the first intro page of the installer. It's specifically designed to carefully check the Arduino version, so it doesn't go changing a bunch of stuff within other versions of Arduino that it doesn't support.
 
Ok I figured out how to turn off the safety measures like antivirus and defender and I was finnaly able to install the teensy software into the arduino software. And now my demo compiles.

I hope y'all didn't think my irritation above was directed at any of you or the site or the product. It was completely directed at the arduino IDE.

I appreciate this site so much and help I get here is phenomenal with helping and teaching and especially your patience!!!!!
 
So much for making header files to go with the .cpp files. It still gives me these errors........


Code:
Arduino: 1.8.2 (Windows 10), TD: 1.36, Board: "Teensy 3.6, Serial, 180 MHz, Faster, US English"

In file included from C:\Users\chuck\Documents\Github\Tetris\Tetris.ino:4:0:

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\Joystick.h:18:0: warning: "CENTER" redefined

 #define CENTER      512

 ^

In file included from C:\Users\chuck\Documents\Github\Tetris\Tetris.ino:2:0:

C:\Users\chuck\Documents\Arduino\libraries\GamerRIot-master/Grafx.h:265:0: note: this is the location of the previous definition

 #define CENTER     9998

 ^

In file included from C:\Users\chuck\Documents\Github\Tetris\Tetris.ino:5:0:

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\TetrisA.h:51:1: warning: 'typedef' was ignored in this declaration

 };

 ^

Tetris: In function 'void drawPreGameScreen()':
Tetris:85: warning: ISO C++ forbids converting a string constant to 'char*' 
   tft.drawCenteredString("Tetris", 40, 8, BLUE);

                                               ^

Tetris:86: warning: ISO C++ forbids converting a string constant to 'char*' 
   tft.drawCenteredString("Click to play", 110, 2, BLACK);

                                                        ^

Tetris:87: warning: ISO C++ forbids converting a string constant to 'char*' 
   tft.drawCenteredString("http://vilaca.eu", 220, 2, PURPLE);

                                                            ^

Tetris: In function 'void gameOver()':
Tetris:94: warning: ISO C++ forbids converting a string constant to 'char*' 
   tft.drawString("Game Over", 48, 94, 4, 0x3ffff);

                                                 ^

Tetris:94: warning: large integer implicitly truncated to unsigned type 
C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\Tetris.ino.cpp.o: In function `Joystick::init()':

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch/joystick.cpp:29: multiple definition of `Joystick::init()'

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\Joystick.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch/Joystick.cpp:29: first defined here

c:/program files (x86)/arduino/hardware/tools/arm/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/bin/ld.exe: Disabling relaxation: it will not work with multiple definitions

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\Tetris.ino.cpp.o: In function `Joystick::init()':

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch/joystick.cpp:29: multiple definition of `Joystick::getX()'

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\Joystick.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch/Joystick.cpp:29: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\Tetris.ino.cpp.o: In function `Joystick::init()':

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch/joystick.cpp:29: multiple definition of `Joystick::getY()'

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\Joystick.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch/Joystick.cpp:29: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\Tetris.ino.cpp.o: In function `Joystick::init()':

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch/joystick.cpp:29: multiple definition of `Joystick::fire()'

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\Joystick.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch/Joystick.cpp:29: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\Tetris.ino.cpp.o: In function `Joystick::init()':

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch/joystick.cpp:29: multiple definition of `Joystick::waitForRelease()'

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\Joystick.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch/Joystick.cpp:29: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\Tetris.ino.cpp.o: In function `Joystick::init()':

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch/joystick.cpp:29: multiple definition of `Joystick::waitForRelease(int)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\Joystick.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch/Joystick.cpp:29: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\Tetris.ino.cpp.o: In function `Joystick::init()':

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch/joystick.cpp:29: multiple definition of `Joystick::waitForClick()'

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\Joystick.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch/Joystick.cpp:29: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\TetrisA.cpp.o: In function `Joystick::init()':

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch/joystick.cpp:29: multiple definition of `Joystick::init()'

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\Joystick.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch/Joystick.cpp:29: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\TetrisA.cpp.o: In function `Joystick::init()':

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch/joystick.cpp:29: multiple definition of `Joystick::getX()'

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\Joystick.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch/Joystick.cpp:29: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\TetrisA.cpp.o: In function `Joystick::init()':

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch/joystick.cpp:29: multiple definition of `Joystick::getY()'

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\Joystick.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch/Joystick.cpp:29: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\TetrisA.cpp.o: In function `Joystick::init()':

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch/joystick.cpp:29: multiple definition of `Joystick::fire()'

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\Joystick.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch/Joystick.cpp:29: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\TetrisA.cpp.o: In function `Joystick::init()':

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch/joystick.cpp:29: multiple definition of `Joystick::waitForRelease()'

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\Joystick.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch/Joystick.cpp:29: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\TetrisA.cpp.o: In function `Joystick::init()':

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch/joystick.cpp:29: multiple definition of `Joystick::waitForRelease(int)'

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\Joystick.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch/Joystick.cpp:29: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\TetrisA.cpp.o: In function `Joystick::init()':

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch/joystick.cpp:29: multiple definition of `Joystick::waitForClick()'

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\Joystick.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch/Joystick.cpp:29: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\TetrisA.cpp.o: In function `Joystick::init()':

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch/joystick.cpp:29: multiple definition of `joystick'

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\Tetris.ino.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch/joystick.cpp:29: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\TetrisA.cpp.o: In function `Joystick::init()':

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch/joystick.cpp:29: multiple definition of `ButtonB'

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\Tetris.ino.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch/joystick.cpp:29: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\TetrisA.cpp.o: In function `Joystick::init()':

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch/joystick.cpp:29: multiple definition of `ButtonRight'

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\Tetris.ino.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch/joystick.cpp:29: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\TetrisA.cpp.o: In function `Joystick::init()':

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch/joystick.cpp:29: multiple definition of `ButtonLeft'

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\Tetris.ino.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch/joystick.cpp:29: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\TetrisA.cpp.o: In function `Joystick::init()':

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch/joystick.cpp:29: multiple definition of `ButtonDown'

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\Tetris.ino.cpp.o:C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch/joystick.cpp:29: first defined here

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\TetrisA.cpp.o: In function `Tetris::score()':

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch/TetrisA.cpp:392: undefined reference to `Tetris::scoreBoard()'

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch\TetrisA.cpp.o: In function `Tetris::run()':

C:\Users\chuck\AppData\Local\Temp\arduino_build_932124\sketch/TetrisA.cpp:114: undefined reference to `Tetris::scoreBoard()'

collect2.exe: error: ld returned 1 exit status

Multiple libraries were found for "SD.h"
 Used: C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SD
 Not used: C:\Program Files (x86)\Arduino\libraries\SD
Error compiling for board Teensy 3.6.

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

I'm about ready to toss the whole project. this right here is just plain ignorant!!!!!!!!!!!!

https://github.com/Duhjoker/Tetris
 
Last edited:
You should perhaps not blame the compiler or the IDE but rather improve the organization of your code. Multiple #defines and multiple function definitions are most times the result of including redundant or incompatible stuff. Why, instead of posting that here, don’t you go systematically through the compiler errors and fix / resolve these one by one?
 
OMG really?? That's all I have been doing. The libraries have been debugged. They work, compile and play until I change a function then it gives me all this multiple read crap because its trying to read from my source and the stupid temp file source. You can see my code below. It's the same as original but with updated graphics functions. I even made .h files.


https://github.com/Duhjoker/Tetris
 
I agree with Thermingenieur - That when you start getting errors like this, it is often much easier and to me more fun to figure it out and solve them one by one.

One hint - start at the top of the errors as often times many of the errors listed is due to problems before it.

But taking a quick look at some of the errors. Example #define CENTER
is defined in two different places with two very different values. This gives you a pretty good hint there is an issue. That the word CENTER is very generic and as such can lead to errors like this. So for example if you change the one in joystick.h and all of the places that logically refer to it, to something like JOYSTICK_CENTER than it probably won't conflict.

Many other ways to resolve it as well. Things like namespace, or part of an Enum, or as a static const value of a class...

Then if you see an error like: warning: ISO C++ forbids converting a string constant to 'char*'
Google the string (warning: ISO C++ forbids converting a string constant to 'char*')
You will find out that with more recent compilers you need to change your function: tft.drawString("Game Over", 48, 94, 4, 0x3ffff)
That instead of having the first parameter be of char*, it needs to be of type: const char*
That is you are promising the compiler that this function will not modify the string passed in.

As for duplicate symbols or the like could be several reasons (likewise for duplicate defines). One example is the same header file is included multiple times into the same file and as such the file is read multiple times. An example of this is suppose you have a global header file, example: globals.h which includes joystick.h and then you have one of your source files include globals.h and joystick.h...

So a typical solution to this is to have your header file protect itself to only include its data once... That is by having the header file do something like:
Assume this is joystick.h
Code:
#ifndef __joystick_h__
#define __joystick_h__
<... put in all of your stuf ...>
#endif
The #ifndef/#define should be some name that you are reasonably sure will be unique as if you used some name like stuff_defined and did this in multiple header files, only one of them will have their stuff properly included.

...
 
I'm trying guys. I'm trying every thing I've been told. I have my headers and even have them protected like in post 22. On the warnings, if I compile the original code with out the updated move functions that are giving me hell. I get the same warnings and it compiles and loads to my teensy and works. But it only has one button and then uses an analog joystick for movement. Plus both of the first couple warnings happen whether I try to compile any version of the code including the original atmega version.

I am only working with one set of files. No copies. All copies have been either deleted or are in zip form. Please re-read what I am telling you. The multiples come from the TEMP FILE and MY SOURCE when I change the movement functions.
 
I know you are trying...

But for example if I look at your github project, almost all of the files are including grafx.h Which is not in this directory. So I am assuming that it is found in some library directory on your computer.
Probably somewhere in <Arduino sketch folder>/libraries.

So the build process finds all of the libraries that your project depends on and copies them to a temp folder to use to build your program. This system also finds all .cpp files in this folder and compiles it as part of your build... So where it grafx.h found?

And yes some times programs work for now with these types of warnings... But it is preferable to get to the point where you can build your program without any warnings.
 
Ok had to walk away for a lil while. So as a break I took the the Tetris teensy touch and re-added the button functions because I had somehow deleted my other. I then was able to get the screen configured so it didn't cut off the bottom of the playing field. But it's really way to big and needs more adjustments.

While I was doing so I thought why not just take the two files, Tetris.cpp and merge those functions into the Tetris.ino file with the dependencies included at the top as normal and the extra functions being listed after the Void loop.

Then kill both the .cpp for Tetris and joystick and re-write the input controls to not use any joystick muck at all. The fire button will be easy and I can probably write getX and getY out of the input since they just read the input of the joystick and tell it hard or soft which means left or right or up and down.

Thank you for your patience. And I sure don't mind fixing warnings at all. I guess I was given some bad advice when someone a year or so ago said don't worry about them they are just warnings. Nobody from this site though.
 
Status
Not open for further replies.
Back
Top