Разница между заголовками Mac и Windows (/ vs \) - PullRequest
1 голос
/ 04 декабря 2010

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

#include "Adapter\EngineAdapterFactory.hpp"

, на

#include "Adapter/EngineAdapterFactory.hpp"

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

Ответы [ 2 ]

4 голосов
/ 04 декабря 2010

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

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

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

4 голосов
/ 04 декабря 2010

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

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

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

...