Форумы mbed не работают, поэтому я выкладываю сюда для помощи.
mbed поддерживает библиотеки и программы как отдельные объекты. В духе модульного тестирования я хочу включить процедуру тестирования в мой код библиотеки. Если библиотека импортируется как программа и компилируется, тогда main () будет собран и скомпонован и сгенерирует некоторые результаты теста. Если библиотека используется нормально, функция main () не встроена в код, что предотвращает ошибки компоновщика.
Есть ли какие-либо предопределенные директивы препроцессора, на которые я мог бы обратить внимание, чтобы сделать это определение? Если нет, есть ли у кого-нибудь предложение о том, как я могу внедрить процедуру тестирования в свою библиотеку?
Для ясности, вот простой пример:
пример кода, который хочет знать, если это программа или библиотека
#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
Задача ещё не решена.