Si les deux doivent être lancés en parallèle, le plus simple c'est de faire un fork. Dans le processus père tu lances le premier programme (avec execvp par exemple), dans le processus fils le deuxième programme.
Rien ne t'empêche de mettre des sections de codes qui diffèrent selon l'OS, et de passer un #define à la compilation. Exemple :
#include <iostream>
int main(){
#ifdef LINUX
std::cout << "compilé pour linux" << std::endl;
#elif WINDOWS
std::cout << "compilé pour windows" << std::endl;
#endif
//...
std::cout << "au revoir" << std::endl;
return 0;
}
Pour compiler sous linux :
g++ -W -Wall -DLINUX plop.cpp
... même principe sous windows.
Bonne chance