To raczej nie ma związku z linkowaniem ;)
cout << "Poczatek programu" << endl;
void funkcja_francuska();
void funkcja_niemiecka();
cout << "Koniec programu" << endl;
W tym momencie nie wywołałeś tych funkcji, tylko znowu zadeklarowałeś ich istnienie. Tak nie wygląda składnia wywoływania funkcji ;)