Самым простым решением было бы иметь один файл, который можно скомпилировать как модуль ядра или как процесс в реальном времени.
Вероятно, это должно выглядеть примерно так:
void MyModule_Init()
{
// Initialize the module
...
}
...
#ifdef __RTP__
int main(...)
{
// RTP Main just invokes the Module's initialization
MyModule_Init();
}
#endif
Макрос __RTP__ определяется, если сборка предназначена для среды RTP
Макрос _WRS_KERNEL определяется, если сборка предназначена для среды ядра.
С этими двумя макросами вы можете компилировать код для обеих сред.