nhatuan84 / esp32-micro-sdcard

120 stars 46 forks source link

no matching function for call to 'SDClass::open(StringSumHelper&, int)' #9

Closed Commifreak closed 3 years ago

Commifreak commented 3 years ago

I created a new lib dir and put all your files in a new folder.

I set #include "SD.h" to #include "mySD.h". But now I get:

C:\Users\Robin\Documents\Arduino\libraries\esp32-micro-sdcard/mySD.h:91:11: note:   no known conversion for argument 1 from 'StringSumHelper' to 'char*'
In file included from C:\Users\Robin\Downloads\LED-PIXELART-MATRIX\LED-PIXELART-MATRIX.ino:12:0:
sketch\animationHandler.h: In member function 'int AnimationHandler::readFromConfig(String)':
animationHandler.h:204:56: error: no matching function for call to 'SDClass::open(StringSumHelper&)'
       File configfile = SD.open(dir.name() + configPath);
                                                        ^
In file included from C:\Users\Robin\Downloads\LED-PIXELART-MATRIX\LED-PIXELART-MATRIX.ino:6:0:
C:\Users\Robin\Documents\Arduino\libraries\esp32-micro-sdcard/mySD.h:88:8: note: candidate: File SDClass::open(const char*, uint8_t)
   File open(const char *filename, uint8_t mode = FILE_READ);
        ^~~~
C:\Users\Robin\Documents\Arduino\libraries\esp32-micro-sdcard/mySD.h:88:8: note:   no known conversion for argument 1 from 'StringSumHelper' to 'const char*'
In file included from C:\Users\Robin\Downloads\LED-PIXELART-MATRIX\LED-PIXELART-MATRIX.ino:12:0:
sketch\animationHandler.h: In member function 'int AnimationHandler::readBMP(String)':
animationHandler.h:249:34: error: no matching function for call to 'SDClass::open(String&)'
       File bmpFile = SD.open(path);
                                  ^
In file included from C:\Users\Robin\Downloads\LED-PIXELART-MATRIX\LED-PIXELART-MATRIX.ino:6:0:
C:\Users\Robin\Documents\Arduino\libraries\esp32-micro-sdcard/mySD.h:88:8: note: candidate: File SDClass::open(const char*, uint8_t)
   File open(const char *filename, uint8_t mode = FILE_READ);
        ^~~~
C:\Users\Robin\Documents\Arduino\libraries\esp32-micro-sdcard/mySD.h:88:8: note:   no known conversion for argument 1 from 'String' to 'const char*'
In file included from C:\Users\Robin\Downloads\LED-PIXELART-MATRIX\LED-PIXELART-MATRIX.ino:12:0:
sketch\animationHandler.h: In function 'int countFrames(String, String)':
animationHandler.h:356:29: error: no matching function for call to 'SDClass::open(String&)'
   File folder = SD.open(path);
                             ^
In file included from C:\Users\Robin\Downloads\LED-PIXELART-MATRIX\LED-PIXELART-MATRIX.ino:6:0:
C:\Users\Robin\Documents\Arduino\libraries\esp32-micro-sdcard/mySD.h:88:8: note: candidate: File SDClass::open(const char*, uint8_t)
   File open(const char *filename, uint8_t mode = FILE_READ);
        ^~~~
C:\Users\Robin\Documents\Arduino\libraries\esp32-micro-sdcard/mySD.h:88:8: note:   no known conversion for argument 1 from 'String' to 'const char*'
In file included from C:\Users\Robin\Downloads\LED-PIXELART-MATRIX\LED-PIXELART-MATRIX.ino:12:0:
animationHandler.h:366:61: error: no matching function for call to 'SDClass::open(StringSumHelper&, int)'
   File configfile = SD.open(path + "/config.ini", FILE_WRITE);
                                                             ^
In file included from C:\Users\Robin\Downloads\LED-PIXELART-MATRIX\LED-PIXELART-MATRIX.ino:6:0:
C:\Users\Robin\Documents\Arduino\libraries\esp32-micro-sdcard/mySD.h:88:8: note: candidate: File SDClass::open(const char*, uint8_t)
   File open(const char *filename, uint8_t mode = FILE_READ);
        ^~~~
C:\Users\Robin\Documents\Arduino\libraries\esp32-micro-sdcard/mySD.h:88:8: note:   no known conversion for argument 1 from 'StringSumHelper' to 'const char*'
exit status 1
no matching function for call to 'SDClass::open(String&)'

I try to use the TTGO T8 V1.7 with https://github.com/mvoss96/LED-PIXELART-MATRIX but the SD stuff causes problems here :(

Commifreak commented 3 years ago

Invalid. The src code, which is loaded, set the var types to String. The patched SD lib could not handle it. Using the default SD lib from esp32 and Arduino solved it.