0

arduino プログラムをコンパイルしようとしています。

スケッチ以外のすべてのファイルを既にコンパイルしたい。コンパイルされていないファイルだけをコンパイルするために arduino IDE を既に変更しましたが、すべてのファイルの .h ファイルが必要です。

他のファイルが .o にあり、.h がないファイルを CPP でコンパイルすることは可能ですか?

.h を含む私のファイルやコードを誰にも見られたくないのです。

可能であれば、変更方法を探してarduinoコードのチェックを開始しますが、そうでない場合は、別の方法を探す必要があります。

4

1 に答える 1

4

Arduino は C++ を使用し、コンパイルされた C++ 関数名はオブジェクト (.o) ファイルにパラメーターの型を含めるためにマングルされます。ユーザーのコードを互換性のある名前マングリングでコンパイルする唯一の方法は、コンパイル時に完全な関数宣言を行うことです。

したがって、少なくとも、ユーザーが呼び出すすべての関数の完全な関数宣言を含むヘッダー ファイルを提供する必要があります。これは秘密にすることはできません。それはあなたの API であり、あなたがそれを伝えなければ、ユーザーはそれを使用できません。

パブリック ヘッダー ファイルに含める必要のないものは、内部プライベート関数またはデータ型の宣言または定義です。

したがってlibrary_public.h、ユーザーが知っておくべき宣言のみを含むファイルを作成し、これを .o ファイルに提供します。そして、library_private.h秘密のものをすべて含む を作成します。プライベート ソース コードには両方が含まれます。

于 2013-05-21T17:21:17.237 に答える