Проблема набившая оскомину. Суть в том, что когда вы собираете большой проект из исходников (из разных каталогов подпроектов) вы можете подцепить другой main.c файл из другого подключаемого каталога.
Например у вас целый набор подключаемых (include) файлов *.pri.
Таким образом надо взять за правило в каталогах этих подпроектов не держать main.c файлы.
Как бы исходники отдельно, а запускаемые программы (для их тестирования) отдельно.