Могу ли я сказать с препроцессором код находится в библиотеке или программе mbed

Форумы 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

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]