2

Arduino Leonardo 用に独自のライブラリを作成しました。これはいくつかのヘッダー ファイルで構成され、すべての定義済みメソッドは *.c ファイルに実装されています。Eclipse でコンパイルするとすべて正常に動作しますが、Arduino IDE のコンパイラはメソッドを取得しません。次のエラー メッセージが返されます。

impl.cpp:20: undefined reference to initOptiCom()
impl.cpp:21: undefined reference to calc(unsigned char*, int)
impl.cpp:25: undefined reference to getInitSeq(unsigned char*, long*, long)
impl.cpp:32: undefined reference to decode(unsigned char*, long)
collect2: error: ld returned 1 exit status

すべてのファイルは arduino ライブラリ dir にあり、すべてのライブラリが含まれています... arduino 用の C ライブラリを実装する例をいくつか探しましたが、C++ 用のものしか見つかりませんでした。

多分あなたはここで何が悪いのか知っているでしょう、私はたくさん試しましたが失敗しました:(

4

1 に答える 1

3

おそらくそれは単なる名前のマングリングです。関数を として宣言するかextern "C"、C++ としてコンパイルします (コンパイル時にファイルの名前を GCC に変更するか、フラグを GCC に.cpp渡します)。-x c++

于 2013-05-13T20:54:57.060 に答える