Учитывая это дерево каталогов:
src/MyLibrary/MyHeader.h
src/file.cpp
file.cpp:
#include "mylibrary/myheader.h"
...
Компиляция file.cpp работает с VS, сбоями в gcc.
Спасибо.
Чувствительность к регистру зависит от операционной системы. Windows не чувствительна к регистру. Linux есть.
РЕДАКТИРОВАТЬ:
На самом деле, как заметил комментарий Мартина Йорка , чувствительность к регистру зависит от файловой системы. По умолчанию Windows использует файловую систему без учета регистра, а в Linux - с учетом регистра. Для тех, кто интересуется, какие файловые системы чувствительны к регистру, а какие нет, в Википедии есть полный список: Сравнение ограничений для имен файлов .
Еще один момент, о котором следует помнить, - это символ разделителя путей . Несмотря на то, что Visual Studio (и другие IDE Windows, я уверен) будет принимать либо '/', или '\', вы всегда должны использовать '/' в пути включения для переносимости.
Это не стандарт C ++, это способ Linux, где все имена путей чувствительны к регистру. Лучше всего выбрать любое имя файла (в основном в нижнем регистре) и использовать тот же регистр в директиве include. Также всегда используйте относительные пути к файлам.