Разница между заголовками Mac и Windows (/ vs \)

У меня есть проект Windows, который также работает на XCode. Но мне пришлось изменить все пути исходного заголовка, как

#include "Adapter\EngineAdapterFactory.hpp"

в

#include "Adapter/EngineAdapterFactory.hpp"

Это довольно раздражает, и мне, возможно, придется позже поменять процесс для Visual Studio. Как другие могут решить эту проблему?

2 ответа

Решение

Вы должны быть в состоянии использовать Adapter/EngineAdapterFactory.hpp на обеих платформах.

(По крайней мере, так обстоит дело с GCC на Windows.)

На самом деле, это не просто черта компиляторов - даже с Windows Explorer вы сможете перемещаться с / в качестве разделителя каталогов. Откройте проводник и вставьте в адресную строку что-то вроде: c:/Some/Folder/Structure , Должно работать без сбоев, если вы не используете действительно старую версию Windows (я могу подтвердить, что она работает на XP и выше, но, вероятно, она там еще дольше). Спасибо, Microsoft, за совместимость! :)

Вы никогда не должны использовать \ в пути включения, и дело не в платформе, а в языке (6.4.7/3 из стандарта C99):

Если персонажи ', \, ", //, или же /* происходят в последовательности между < а также > разделители, поведение не определено. Точно так же, если персонажи ', \, //, или же /* происходят в последовательности между " разделители, поведение не определено.

Хотя некоторые компиляторы могут принять \ в пути включения все они должны принять /,

Другие вопросы по тегам