Если в сложном существительном есть соединительная гласная о или е, то такое существительное пишется слитно: теплоход, птицефабрика.
Если сложное существительное образовано при помощи слов, которые могут употребляться независимо друг от друга, то оно пишется через дефис: жар-птица, ковёр-самолёт.