0

mbed フォーラムが壊れているので、助けを求めてここに投稿します。

mbed は、ライブラリとプログラムを別々のエンティティとしてサポートします。モジュール テストの精神で、ライブラリ コードにテスト ルーチンを組み込みたいと考えています。ライブラリをプログラムとしてインポートしてコンパイルすると、main() がビルドおよびリンクされ、テスト出力が生成されます。ライブラリが正常に使用されている場合、main() はコードに組み込まれていないため、リンカ エラーが防止されます。

この決定を行うために調べることができる定義済みのプリプロセッサ ディレクティブはありますか? そうでない場合、テストルーチンをライブラリに実装する方法について誰か提案がありますか?

わかりやすくするために、簡単な例を次に示します。

実験/プルリクエストの提案が必要な場合は、mbed のライブラリ/プログラムへのリンクを次に示します。

プログラムなのかライブラリなのか知りたいサンプルコード

#include "mbed.h"

class LED_TEST:public DigitalOut{
   public:
   LED_TEST(PinName pin):DigitalOut(pin) {};

   void TurnOn() {write(1);}
   void TurnOff() {write(0);}
};

#ifdef __IN_A_PROGRAM   //if I'm compiling as a program then I want to create this main for testing.
                        //if I'm compiling as a library I do not want the main to prevent linker problems
int main(void)
{
LED_TEST lt(LED1);
    while (1)
    {
        lt.TurnOn();
        wait(1);
        lt.TurnOff();
        wait(1);
    }
}
#endif
4

0 に答える 0