Я хотел бы отметить, что это , а не неразрешимая проблема, так как многие пытаются указать на ОП. Нечувствительность к регистру не относится к делу. Дело в том, что Lorenz03Tx объясняет в комментарии, даже если файловая система нечувствительна к регистру, регистр сохраняется, поэтому им можно управлять.
Подобные меры противодействия действительно полезны при кроссплатформенной разработке и сильно мешают работе после того, как код скомпилирован для другой платформы. Не забывайте, что, делая процесс сборки более разборчивым, вы привели бы к улучшению привычек для разработчиков, так как они постепенно будут более последовательными в том, как они включают и называют файлы.
TL; DR
Одним из решений является использование сценария, который просто сканирует исходные файлы для операторов включения и пытается сопоставить их по путям включения. Такой сценарий может быть добавлен к событиям пост-сборки Visual Studio и, таким образом, запускаться при каждой сборке или (на основе krlmlr ) использовать препроцессор компилятора, который обеспечивает чувствительность к регистру.