Во-первых, если вы определяете их непосредственно в заголовке, я бы предложил вместо этого разделить их extern const, а затем определить их в файле cpp:
//in .hpp:
extern const std::string foo;
//in .cpp:
const std::string foo = "FOO";
Таким образом, по крайней мере, определения могут быть изменены без перестройки.
Во-вторых, проверьте, где они включены. Если константный файл включен в заголовок низкого уровня, можно ли вместо этого включить включение в cpp? Снятие его может привести к снижению сцепления, поэтому его не нужно восстанавливать слишком много.
В-третьих, разбейте этот файл. Я бы предложил наметить структуру, которую вы в конечном итоге захотите, начать добавлять новые константы в новую структуру вместо старого файла. В конце концов (когда вы уверены, что получили желаемую структуру), выполните рефакторинг старого файла в новую структуру и сделайте так, чтобы старый файл включал всю структуру. Наконец, пройдите и удалите все включения старого файла, указав их в соответствующих новых разделах. Это нарушит рефакторинг, поэтому вам не придется делать все сразу.
И, в-четвертых, вы можете обмануть ваш компилятор, чтобы он не перестраивался, если изменяется заголовочный файл. Вам нужно будет проверить документацию вашего компилятора, и это может быть небезопасно, поэтому иногда вы также захотите добавить полные сборки.