私は(http://arduiniana.org/libraries/flash/)バージョン5のFlash.hライブラリをArduino 1.0.5とteensy 3.1で問題なく使用しています。バージョン 1.0.6 にアップグレードする必要がありましたが、このエラーが発生しています
[removed path from message]
/.../libraries/Flash/Flash.h: In member function 'char* _FLASH_STRING::copy(char*, size_t, size_t) const':
/.../libraries/Flash/Flash.h:79:44: error: operands to ?: have different types 'int' and 'char*'
これは flash.h のコードです
char *copy(char *to, size_t size = -1, size_t offset = 0) const
{
return size == -1 ?
strcpy_P(to, _arr + offset) : strncpy_P(to, _arr + offset, size);
}
一見すると、オペランドが strcpy と strncpy を比較していて、どちらも char* を返すことがわかります。そのため、一方が int であると考える理由がわかりません。
このページには、使用されている 2 つの関数に関する参照がありますhttp://tuxgraphics.org/common/src2/article12051/avr-libc-user-manual/manual/group__avr__pgmspace.html
問題が何であるかを理解するための助けをいただければ幸いです。ライブラリ テストは vailla Arduino 1.0.6 で動作しますが、Teensyduino バージョン 1.20 をインストールして Teensy 3.1 用にコンパイルしようとすると、このエラーが発生します。Arduino Unoにコンパイルすると動作します。
前もって感謝します