Не совсем, вы должны объявить функции где-то видимым для вызывающей стороны.Заголовочный файл является наиболее удобным способом сделать это, потому что он предоставляет интерфейс.Возможный подход заключается в объединении этих заголовков в один файл .h, поэтому вы предоставляете единый и полный интерфейс со своей библиотекой.
Единственный другой подход, о котором я могу подумать, - это объявление функций в файлах, к которым вы обращаетесьих, но это гораздо более разрушительно и подвержено ошибкам, чем включение файла заголовка.