- Fri Dec 04, 2015 5:01 pm
#35669
Somhi wrote:I've modified the Adafruit_SSD1306 library in order to work with the ESP8266 board.
https://github.com/somhi/ESP_SSD1306
I have a working example for SPI communication. Haven't had the chance to try it with I2C yet.
Cheers.
Dear Sohmi I tried to use your code and installed the library.
After installing and try to compile the code of your example I do receive a lot of compile errors.
First I had to rewrite your code a little bit because my compiler needs the subroutines above the calling routine.
After that I do recieve still a lot off errors, mostly because dubble named subroutines.
See my compiler faultlist below.
What am I doing wrong?
'Starting combiner'
"C:\Users\E.W\AppData\Roaming\Arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9/bin/xtensa-lx106-elf-gcc" -g -Os -nostdlib -Wl,--no-check-sections -u call_user_start -Wl,-static "-LC:\Users\E.W\AppData\Roaming\Arduino15\packages\esp8266\hardware\esp8266\1.6.5-947-g39819f0/tools/sdk//lib" "-LC:\Users\E.W\AppData\Roaming\Arduino15\packages\esp8266\hardware\esp8266\1.6.5-947-g39819f0/tools/sdk//ld" "-Teagle.flash.4m.ld" -Wl,-wrap,system_restart_local -Wl,-wrap,register_chipv6_phy -o "D:/Documenten/workspace/OLEDtest/Release/OLEDtest.elf" -Wl,--start-group ./OLEDtest.cpp.o ./Libraries/Wire/Wire.cpp.o ./Libraries/SPI/SPI.cpp.o ./Libraries/ESP_SSD1306-master/ESP_SSD1306.cpp.o ./Libraries/Adafruit-GFX-Library-master/Adafruit_GFX.cpp.o ./Libraries/Adafruit-GFX-Library-master/glcdfont.c.o arduino.ar "D:/Documenten/workspace/OLEDtest/Release/arduino.ar" -lm -lgcc -lhal -lphy -lnet80211 -llwip -lwpa -lmain -lpp -lsmartconfig -lwps -lcrypto -Wl,--end-group "-LD:/Documenten/workspace/OLEDtest/Release"
./Libraries/ESP_SSD1306-master/ESP_SSD1306.cpp.o:(.bss+0x0): multiple definition of `display'
./OLEDtest.cpp.o:(.bss+0x0): first defined here
./Libraries/ESP_SSD1306-master/ESP_SSD1306.cpp.o: In function `testdrawbitmap(unsigned char const*, unsigned char, unsigned char)':
D:/Documenten/Arduino/libraries/ESP_SSD1306-master/ESP_SSD1306.cpp:170: multiple definition of `testdrawbitmap(unsigned char const*, unsigned char, unsigned char)'
./OLEDtest.cpp.o:D:\Documenten\workspace\OLEDtest\Release/../OLEDtest.cpp:140: first defined here
./Libraries/ESP_SSD1306-master/ESP_SSD1306.cpp.o: In function `testdrawchar()':
D:/Documenten/Arduino/libraries/ESP_SSD1306-master/ESP_SSD1306.cpp:211: multiple definition of `testdrawchar()'
./OLEDtest.cpp.o:D:\Documenten\workspace\OLEDtest\Release/../OLEDtest.cpp:181: first defined here
./Libraries/ESP_SSD1306-master/ESP_SSD1306.cpp.o: In function `testfillrect()':
D:/Documenten/Arduino/libraries/ESP_SSD1306-master/ESP_SSD1306.cpp:225: multiple definition of `testfillrect()'
./OLEDtest.cpp.o:D:\Documenten\workspace\OLEDtest\Release/../OLEDtest.cpp:195: first defined here
./Libraries/ESP_SSD1306-master/ESP_SSD1306.cpp.o: In function `testdrawcircle()':
D:/Documenten/Arduino/libraries/ESP_SSD1306-master/ESP_SSD1306.cpp:235: multiple definition of `testdrawcircle()'
./OLEDtest.cpp.o:D:\Documenten\workspace\OLEDtest\Release/../OLEDtest.cpp:205: first defined here
./Libraries/ESP_SSD1306-master/ESP_SSD1306.cpp.o: In function `testdrawtriangle()':
D:/Documenten/Arduino/libraries/ESP_SSD1306-master/ESP_SSD1306.cpp:242: multiple definition of `testdrawtriangle()'
./OLEDtest.cpp.o:D:\Documenten\workspace\OLEDtest\Release/../OLEDtest.cpp:212: first defined here
./Libraries/ESP_SSD1306-master/ESP_SSD1306.cpp.o: In function `testfilltriangle()':
D:/Documenten/Arduino/libraries/ESP_SSD1306-master/ESP_SSD1306.cpp:251: multiple definition of `testfilltriangle()'
./OLEDtest.cpp.o:D:\Documenten\workspace\OLEDtest\Release/../OLEDtest.cpp:221: first defined here
./Libraries/ESP_SSD1306-master/ESP_SSD1306.cpp.o: In function `testdrawroundrect()':
D:/Documenten/Arduino/libraries/ESP_SSD1306-master/ESP_SSD1306.cpp:263: multiple definition of `testdrawroundrect()'
./OLEDtest.cpp.o:D:\Documenten\workspace\OLEDtest\Release/../OLEDtest.cpp:233: first defined here
./Libraries/ESP_SSD1306-master/ESP_SSD1306.cpp.o: In function `testfillroundrect()':
D:/Documenten/Arduino/libraries/ESP_SSD1306-master/ESP_SSD1306.cpp:270: multiple definition of `testfillroundrect()'
./OLEDtest.cpp.o:D:\Documenten\workspace\OLEDtest\Release/../OLEDtest.cpp:240: first defined here
./Libraries/ESP_SSD1306-master/ESP_SSD1306.cpp.o: In function `testdrawrect()':
D:/Documenten/Arduino/libraries/ESP_SSD1306-master/ESP_SSD1306.cpp:280: multiple definition of `testdrawrect()'
./OLEDtest.cpp.o:D:\Documenten\workspace\OLEDtest\Release/../OLEDtest.cpp:250: first defined here
./Libraries/ESP_SSD1306-master/ESP_SSD1306.cpp.o: In function `testdrawline()':
D:/Documenten/Arduino/libraries/ESP_SSD1306-master/ESP_SSD1306.cpp:287: multiple definition of `testdrawline()'
./OLEDtest.cpp.o:D:\Documenten\workspace\OLEDtest\Release/../OLEDtest.cpp:257: first defined here
./Libraries/ESP_SSD1306-master/ESP_SSD1306.cpp.o: In function `testscrolltext()':
D:/Documenten/Arduino/libraries/ESP_SSD1306-master/ESP_SSD1306.cpp:332: multiple definition of `testscrolltext()'
./OLEDtest.cpp.o:D:\Documenten\workspace\OLEDtest\Release/../OLEDtest.cpp:302: first defined here
./Libraries/ESP_SSD1306-master/ESP_SSD1306.cpp.o: In function `loop':
D:/Documenten/Arduino/libraries/ESP_SSD1306-master/ESP_SSD1306.cpp:481: multiple definition of `loop'
./OLEDtest.cpp.o:D:\Documenten\workspace\OLEDtest\Release/../OLEDtest.cpp:450: first defined here
./Libraries/ESP_SSD1306-master/ESP_SSD1306.cpp.o: In function `HardwareSerial::begin(unsigned long)':
C:\Users\E.W\AppData\Roaming\Arduino15\packages\esp8266\hardware\esp8266\1.6.5-947-g39819f0\cores\esp8266/HardwareSerial.h:77: multiple definition of `setup'
./OLEDtest.cpp.o:C:\Users\E.W\AppData\Roaming\Arduino15\packages\esp8266\hardware\esp8266\1.6.5-947-g39819f0\cores\esp8266/HardwareSerial.h:77: first defined here
./OLEDtest.cpp.o:(.text+0x18): undefined reference to `ESP_SSD1306::display()'
./OLEDtest.cpp.o: In function `testdrawbitmap(unsigned char const*, unsigned char, unsigned char)':
OLEDtest.cpp:(.text+0xde): undefined reference to `ESP_SSD1306::display()'
OLEDtest.cpp:(.text+0x1a6): undefined reference to `ESP_SSD1306::display()'
./OLEDtest.cpp.o: In function `testdrawchar()':
OLEDtest.cpp:(.text+0x225): undefined reference to `ESP_SSD1306::display()'
./OLEDtest.cpp.o: In function `testfillrect()':
OLEDtest.cpp:(.text+0x29d): undefined reference to `ESP_SSD1306::display()'
./OLEDtest.cpp.o:OLEDtest.cpp:(.text+0x388): more undefined references to `ESP_SSD1306::display()' follow
./OLEDtest.cpp.o: In function `testdrawroundrect()':
OLEDtest.cpp:(.text+0x6c8): undefined reference to `ESP_SSD1306::clearDisplay()'
OLEDtest.cpp:(.text+0x706): undefined reference to `ESP_SSD1306::display()'
OLEDtest.cpp:(.text+0x744): undefined reference to `ESP_SSD1306::display()'
./OLEDtest.cpp.o: In function `testfillroundrect()':
OLEDtest.cpp:(.text+0x75e): undefined reference to `ESP_SSD1306::clearDisplay()'
OLEDtest.cpp:(.text+0x790): undefined reference to `ESP_SSD1306::display()'
OLEDtest.cpp:(.text+0x7e0): undefined reference to `ESP_SSD1306::display()'
OLEDtest.cpp:(.text+0x7f7): undefined reference to `ESP_SSD1306::clearDisplay()'
./OLEDtest.cpp.o: In function `testdrawrect()':
OLEDtest.cpp:(.text+0x83d): undefined reference to `ESP_SSD1306::display()'
OLEDtest.cpp:(.text+0x88d): undefined reference to `ESP_SSD1306::display()'
OLEDtest.cpp:(.text+0x8a4): undefined reference to `ESP_SSD1306::clearDisplay()'
OLEDtest.cpp:(.text+0x8d5): undefined reference to `ESP_SSD1306::display()'
OLEDtest.cpp:(.text+0x920): undefined reference to `ESP_SSD1306::display()'
OLEDtest.cpp:(.text+0x94c): undefined reference to `ESP_SSD1306::startscrollright(unsigned char, unsigned char)'
OLEDtest.cpp:(.text+0x950): undefined reference to `ESP_SSD1306::stopscroll()'
./OLEDtest.cpp.o: In function `testdrawline()':
OLEDtest.cpp:(.text+0x954): undefined reference to `ESP_SSD1306::startscrollleft(unsigned char, unsigned char)'
OLEDtest.cpp:(.text+0x958): undefined reference to `ESP_SSD1306::startscrolldiagright(unsigned char, unsigned char)'
OLEDtest.cpp:(.text+0x95c): undefined reference to `ESP_SSD1306::startscrolldiagleft(unsigned char, unsigned char)'
OLEDtest.cpp:(.text+0x983): undefined reference to `ESP_SSD1306::clearDisplay()'
OLEDtest.cpp:(.text+0x993): undefined reference to `ESP_SSD1306::display()'
OLEDtest.cpp:(.text+0x99f): undefined reference to `ESP_SSD1306::startscrollright(unsigned char, unsigned char)'
OLEDtest.cpp:(.text+0x9ad): undefined reference to `ESP_SSD1306::stopscroll()'
OLEDtest.cpp:(.text+0x9bf): undefined reference to `ESP_SSD1306::startscrollleft(unsigned char, unsigned char)'
OLEDtest.cpp:(.text+0x9cd): undefined reference to `ESP_SSD1306::stopscroll()'
OLEDtest.cpp:(.text+0x9e0): undefined reference to `ESP_SSD1306::startscrolldiagright(unsigned char, unsigned char)'
OLEDtest.cpp:(.text+0x9f2): undefined reference to `ESP_SSD1306::startscrolldiagleft(unsigned char, unsigned char)'
OLEDtest.cpp:(.text+0xa00): undefined reference to `ESP_SSD1306::stopscroll()'
OLEDtest.cpp:(.text+0xa30): undefined reference to `ESP_SSD1306::begin(unsigned char, unsigned char, bool)'
OLEDtest.cpp:(.text+0xa34): undefined reference to `ESP_SSD1306::drawPixel(short, short, unsigned short)'
OLEDtest.cpp:(.text+0xa38): undefined reference to `ESP_SSD1306::invertDisplay(unsigned char)'
OLEDtest.cpp:(.text+0xa5f): undefined reference to `ESP_SSD1306::begin(unsigned char, unsigned char, bool)'
OLEDtest.cpp:(.text+0xa67): undefined reference to `ESP_SSD1306::display()'
OLEDtest.cpp:(.text+0xa75): undefined reference to `ESP_SSD1306::clearDisplay()'
OLEDtest.cpp:(.text+0xa92): undefined reference to `ESP_SSD1306::display()'
OLEDtest.cpp:(.text+0xaa0): undefined reference to `ESP_SSD1306::clearDisplay()'
OLEDtest.cpp:(.text+0xaae): undefined reference to `ESP_SSD1306::drawPixel(short, short, unsigned short)'
OLEDtest.cpp:(.text+0xab6): undefined reference to `ESP_SSD1306::display()'
OLEDtest.cpp:(.text+0xac4): undefined reference to `ESP_SSD1306::clearDisplay()'
OLEDtest.cpp:(.text+0xacf): undefined reference to `ESP_SSD1306::display()'
OLEDtest.cpp:(.text+0xadd): undefined reference to `ESP_SSD1306::clearDisplay()'
OLEDtest.cpp:(.text+0xae8): undefined reference to `ESP_SSD1306::display()'
OLEDtest.cpp:(.text+0xaf6): undefined reference to `ESP_SSD1306::clearDisplay()'
OLEDtest.cpp:(.text+0xb01): undefined reference to `ESP_SSD1306::display()'
OLEDtest.cpp:(.text+0xb0f): undefined reference to `ESP_SSD1306::clearDisplay()'
OLEDtest.cpp:(.text+0xb1a): undefined reference to `ESP_SSD1306::display()'
OLEDtest.cpp:(.text+0xb28): undefined reference to `ESP_SSD1306::clearDisplay()'
OLEDtest.cpp:(.text+0xb5b): undefined reference to `ESP_SSD1306::display()'
OLEDtest.cpp:(.text+0xb69): undefined reference to `ESP_SSD1306::clearDisplay()'
OLEDtest.cpp:(.text+0xb7a): undefined reference to `ESP_SSD1306::clearDisplay()'
OLEDtest.cpp:(.text+0xb8b): undefined reference to `ESP_SSD1306::clearDisplay()'
OLEDtest.cpp:(.text+0xb9c): undefined reference to `ESP_SSD1306::clearDisplay()'
OLEDtest.cpp:(.text+0xbad): undefined reference to `ESP_SSD1306::clearDisplay()'
OLEDtest.cpp:(.text+0xbb8): undefined reference to `ESP_SSD1306::display()'
OLEDtest.cpp:(.text+0xbc6): undefined reference to `ESP_SSD1306::clearDisplay()'
OLEDtest.cpp:(.text+0xbd7): undefined reference to `ESP_SSD1306::clearDisplay()'
OLEDtest.cpp:(.text+0xc34): undefined reference to `ESP_SSD1306::display()'
OLEDtest.cpp:(.text+0xc42): undefined reference to `ESP_SSD1306::clearDisplay()'
OLEDtest.cpp:(.text+0xc5e): undefined reference to `ESP_SSD1306::display()'
OLEDtest.cpp:(.text+0xc6e): undefined reference to `ESP_SSD1306::invertDisplay(unsigned char)'
./OLEDtest.cpp.o: In function `testscrolltext()':
OLEDtest.cpp:(.text+0xc7e): undefined reference to `ESP_SSD1306::invertDisplay(unsigned char)'
OLEDtest.cpp:(.text+0xc8c): undefined reference to `ESP_SSD1306::clearDisplay()'
OLEDtest.cpp:(.text+0xc9f): undefined reference to `ESP_SSD1306::display()'
./OLEDtest.cpp.o:(.text.startup+0x0): undefined reference to `ESP_SSD1306::ESP_SSD1306(signed char, signed char, signed char)'
./OLEDtest.cpp.o: In function `_GLOBAL__sub_I_display':
OLEDtest.cpp:(.text.startup+0x12): undefined reference to `ESP_SSD1306::ESP_SSD1306(signed char, signed char, signed char)'
./Libraries/ESP_SSD1306-master/ESP_SSD1306.cpp.o: In function `testdrawbitmap(unsigned char const*, unsigned char, unsigned char)':
ESP_SSD1306.cpp:(.text+0xd2): undefined reference to `ESP_SSD1306::display()'
ESP_SSD1306.cpp:(.text+0x196): undefined reference to `ESP_SSD1306::display()'
./Libraries/ESP_SSD1306-master/ESP_SSD1306.cpp.o: In function `testdrawchar()':
ESP_SSD1306.cpp:(.text+0x215): undefined reference to `ESP_SSD1306::display()'
./Libraries/ESP_SSD1306-master/ESP_SSD1306.cpp.o: In function `testfillrect()':
ESP_SSD1306.cpp:(.text+0x28d): undefined reference to `ESP_SSD1306::display()'
./Libraries/ESP_SSD1306-master/ESP_SSD1306.cpp.o: In function `testdrawcircle()':
ESP_SSD1306.cpp:(.text+0x378): undefined reference to `ESP_SSD1306::display()'
./Libraries/ESP_SSD1306-master/ESP_SSD1306.cpp.o:ESP_SSD1306.cpp:(.text+0x4b0): more undefined references to `ESP_SSD1306::display()' follow
./Libraries/ESP_SSD1306-master/ESP_SSD1306.cpp.o: In function `testdrawroundrect()':
ESP_SSD1306.cpp:(.text+0x74a): undefined reference to `ESP_SSD1306::clearDisplay()'
./Libraries/ESP_SSD1306-master/ESP_SSD1306.cpp.o: In function `testfillroundrect()':
ESP_SSD1306.cpp:(.text+0x77c): undefined reference to `ESP_SSD1306::display()'
ESP_SSD1306.cpp:(.text+0x7cc): undefined reference to `ESP_SSD1306::display()'
ESP_SSD1306.cpp:(.text+0x7e3): undefined reference to `ESP_SSD1306::clearDisplay()'
ESP_SSD1306.cpp:(.text+0x829): undefined reference to `ESP_SSD1306::display()'
./Libraries/ESP_SSD1306-master/ESP_SSD1306.cpp.o: In function `testdrawrect()':
ESP_SSD1306.cpp:(.text+0x879): undefined reference to `ESP_SSD1306::display()'
ESP_SSD1306.cpp:(.text+0x890): undefined reference to `ESP_SSD1306::clearDisplay()'
ESP_SSD1306.cpp:(.text+0x8c1): undefined reference to `ESP_SSD1306::display()'
ESP_SSD1306.cpp:(.text+0x90c): undefined reference to `ESP_SSD1306::display()'
./Libraries/ESP_SSD1306-master/ESP_SSD1306.cpp.o: In function `testdrawline()':
ESP_SSD1306.cpp:(.text+0x95b): undefined reference to `ESP_SSD1306::clearDisplay()'
ESP_SSD1306.cpp:(.text+0x96b): undefined reference to `ESP_SSD1306::display()'
ESP_SSD1306.cpp:(.text+0x977): undefined reference to `ESP_SSD1306::startscrollright(unsigned char, unsigned char)'
ESP_SSD1306.cpp:(.text+0x985): undefined reference to `ESP_SSD1306::stopscroll()'
ESP_SSD1306.cpp:(.text+0x997): undefined reference to `ESP_SSD1306::startscrollleft(unsigned char, unsigned char)'
ESP_SSD1306.cpp:(.text+0x9a5): undefined reference to `ESP_SSD1306::stopscroll()'
ESP_SSD1306.cpp:(.text+0x9b8): undefined reference to `ESP_SSD1306::startscrolldiagright(unsigned char, unsigned char)'
ESP_SSD1306.cpp:(.text+0x9ca): undefined reference to `ESP_SSD1306::startscrolldiagleft(unsigned char, unsigned char)'
ESP_SSD1306.cpp:(.text+0x9d8): undefined reference to `ESP_SSD1306::stopscroll()'
ESP_SSD1306.cpp:(.text+0xa1b): undefined reference to `ESP_SSD1306::begin(unsigned char, unsigned char, bool)'
ESP_SSD1306.cpp:(.text+0xa23): undefined reference to `ESP_SSD1306::display()'
ESP_SSD1306.cpp:(.text+0xa31): undefined reference to `ESP_SSD1306::clearDisplay()'
ESP_SSD1306.cpp:(.text+0xa4e): undefined reference to `ESP_SSD1306::display()'
ESP_SSD1306.cpp:(.text+0xa5c): undefined reference to `ESP_SSD1306::clearDisplay()'
ESP_SSD1306.cpp:(.text+0xa6a): undefined reference to `ESP_SSD1306::drawPixel(short, short, unsigned short)'
ESP_SSD1306.cpp:(.text+0xa72): undefined reference to `ESP_SSD1306::display()'
ESP_SSD1306.cpp:(.text+0xa80): undefined reference to `ESP_SSD1306::clearDisplay()'
ESP_SSD1306.cpp:(.text+0xa8b): undefined reference to `ESP_SSD1306::display()'
ESP_SSD1306.cpp:(.text+0xa99): undefined reference to `ESP_SSD1306::clearDisplay()'
ESP_SSD1306.cpp:(.text+0xaa4): undefined reference to `ESP_SSD1306::display()'
ESP_SSD1306.cpp:(.text+0xab2): undefined reference to `ESP_SSD1306::clearDisplay()'
ESP_SSD1306.cpp:(.text+0xabd): undefined reference to `ESP_SSD1306::display()'
ESP_SSD1306.cpp:(.text+0xacb): undefined reference to `ESP_SSD1306::clearDisplay()'
ESP_SSD1306.cpp:(.text+0xad6): undefined reference to `ESP_SSD1306::display()'
ESP_SSD1306.cpp:(.text+0xae4): undefined reference to `ESP_SSD1306::clearDisplay()'
ESP_SSD1306.cpp:(.text+0xb17): undefined reference to `ESP_SSD1306::display()'
ESP_SSD1306.cpp:(.text+0xb25): undefined reference to `ESP_SSD1306::clearDisplay()'
ESP_SSD1306.cpp:(.text+0xb36): undefined reference to `ESP_SSD1306::clearDisplay()'
ESP_SSD1306.cpp:(.text+0xb47): undefined reference to `ESP_SSD1306::clearDisplay()'
ESP_SSD1306.cpp:(.text+0xb58): undefined reference to `ESP_SSD1306::clearDisplay()'
ESP_SSD1306.cpp:(.text+0xb69): undefined reference to `ESP_SSD1306::clearDisplay()'
ESP_SSD1306.cpp:(.text+0xb74): undefined reference to `ESP_SSD1306::display()'
ESP_SSD1306.cpp:(.text+0xb82): undefined reference to `ESP_SSD1306::clearDisplay()'
ESP_SSD1306.cpp:(.text+0xb93): undefined reference to `ESP_SSD1306::clearDisplay()'
ESP_SSD1306.cpp:(.text+0xbf0): undefined reference to `ESP_SSD1306::display()'
ESP_SSD1306.cpp:(.text+0xbfe): undefined reference to `ESP_SSD1306::clearDisplay()'
ESP_SSD1306.cpp:(.text+0xc1a): undefined reference to `ESP_SSD1306::display()'
ESP_SSD1306.cpp:(.text+0xc2a): undefined reference to `ESP_SSD1306::invertDisplay(unsigned char)'
ESP_SSD1306.cpp:(.text+0xc3a): undefined reference to `ESP_SSD1306::invertDisplay(unsigned char)'
ESP_SSD1306.cpp:(.text+0xc48): undefined reference to `ESP_SSD1306::clearDisplay()'
ESP_SSD1306.cpp:(.text+0xc5b): undefined reference to `ESP_SSD1306::display()'
./Libraries/ESP_SSD1306-master/ESP_SSD1306.cpp.o: In function `_GLOBAL__sub_I_display':
ESP_SSD1306.cpp:(.text.startup+0xe): undefined reference to `ESP_SSD1306::ESP_SSD1306(signed char, signed char, signed char)'
collect2.exe: error: ld returned 1 exit status
makefile:81: recipe for target 'OLEDtest.elf' failed
make: *** [OLEDtest.elf] Error 1
22:50:56 Build Finished (took 1s.394ms)