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