А в КодВижен всё компилировалось потому, что он немного "неправильный". Там перед собственно компиляцией все исходники проекта объединяются в один файл ИмяПроекта__.c. Вам, очевидно, "повезло" - объявление функции оказалось выше по тексту, чем её вызов.