mbed论坛已经破了,所以我在这里发帖寻求帮助。
mbed支持将库和程序作为单独的实体。本着模块测试的精神,我想在我的库代码中加入一个测试例程。如果将库作为程序导入并编译,则main()将构建并链接,并生成一些测试输出。如果正常使用库,则main()不会内置到代码中,从而防止链接器错误。
我是否有任何预定义的预处理程序指令可以用来做出这个决定?如果没有,是否有人建议我如何在我的图书馆中实施测试例程?
为清楚起见,这是一个简单的例子:
Here is a link to the library/program in mbed if you want to experiment/pull request suggestions
想要知道它是程序还是库的示例代码
#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