Нет, нет способа сделать это во время компиляции. Все, что делает компилятор, - это создает объектный код - он не знает о внешнем коде, который может вызывать или не вызывать функции, которые вы пишете. Вы когда-нибудь писали программу, которая вызывает main
? Это компоновщик, который определяет, используется ли функция (в частности, символ) в приложении. И я думаю, что GCC удалит неиспользуемые символы по умолчанию.