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