5

キーパッドとLCDを一緒に制御するための新しいライブラリを作成しています。ほとんどのコードはコンパイルされているように見えますが、LiquidCristal変数を定義する行に到達すると、次のようになります。

「LiquidCrystal」は、カスタムライブラリを作成するときにタイプに名前を付けません

これは私のLCDKeypad.hのコンテンツの抜粋です

// Include types & constants of Wiring core API
#if defined(ARDUINO) && ARDUINO >= 100
#include "Arduino.h"
#else
#include "WProgram.h"
#include "WConstants.h"
#endif

// Include LCD library
#include <LiquidCrystal.h>

エラーは次の行にあります:

private:
LiquidCrystal lcd( 8, 9, 4, 5, 6, 7 ); // <<-- Error
4

2 に答える 2

5

さて、私はたくさん読んでいて、この主題について非常に興味深い記事を見つけました:

複数のライブラリを含む

コンパイラは、スケッチファイルに含まれていないライブラリを検索しないことを示しています。これをハックする方法は、ライブラリをロードする前にコンパイラにそれらをリンクさせることです。私の場合は、スケッチにLiquidCrystal.hが含まれています。

私のライブラリ「LCDkeypad」にLiquidCrystalが必要だとしましょう。私のメインプログラム(スケッチ)には、ライブラリ「LCDKeypad」にロードするためにLiquidCrystalを含める必要があります。

さて、興味深いのは前方宣言を使用していることです。そのため、LCDKeypad.hで「ClassLiquidCrystal」を宣言しますが、ライブラリは含めません。LiquidCrystal.cppとスケッチで行います。これが明確であることを願っています。

于 2012-08-19T22:57:36.957 に答える
1

それを行うには2つの方法があります

  • 独自のコードを作成する場合ヘッダーファイルの.h拡張子と関連するcコードをname_cとして作成するだけです。メインプログラムに追加するときは、ヘッダーファイル名を二重引用符で指定する必要があります。

コード:

#ifndef LCD_H
#define LCD_H

//Declaration of variable /functions
#endif
  • リンクからダウンロードしようとしている場合。次に、コードをに貼り付ける必要がありますD:\arduino\arduino\libraries

エラーの問題:

  • 変数の複数の宣言の重複。

  • ライブラリ関数のオーバーラップ

于 2014-01-08T12:28:00.207 に答える