Можно ли дать больше информации относительно того, почему Вы не можете вызвать функцию?
это не доступный, потому что это является частным в.c файл? Если так, Вы - лучший выбор, должен использовать условную компиляцию, которая допускает доступ к функции, чтобы позволить, чтобы другие единицы компиляции получили доступ к нему. Например
SomeHeaderSomewher.h
#if UNIT_TEST
#define unit_static
#else
#define unit_static static
#endif
Foo.h
#if UNIT_TEST
void some_method
#endif
Foo.cpp
unit_static void some_method() ...
Вчера был задан вопрос, озаглавленный Как Microsoft создавала сборки с циклическими ссылками? , который может больше объяснить, как это делается. Однако я не могу придумать вескую причину, по которой сборка имеет ссылку на себя.