Я работаю над проектом C++, используя Xcode в MacOS X, и теперь начинаю портировать его на Linux, используя IDE Code::Blocks.
Многие из моих исходных файлов находятся в отдельных каталогах, и у меня возникают проблемы с их включением.
Вот пример этой проблемы:
folder1/foo.h
folder2/dog.h
foo.h includes dog.h with: `#include "dog.h"`
Он отлично работает в Xcode, если оба файла находятся в одном проекте, но если я попробую его в Code::Blocks, у него будет ошибка при его обнаружении.
Я могу исправить эту проблему в Code::Blocks, изменив код, чтобы использовать относительный путь включения, например:
#include "../folder2/dog.h"
К сожалению, это мешает Xcode найти файл.
Как я могу решить эту проблему, чтобы я мог скомпилировать один и тот же код в нескольких IDE? Я хотел бы не бросать все исходники в одну папку. Должен ли я использовать оператор препроцессора, подобный:
#if XCODE
#include "dog.h"
#else
#include "../folder2/dog.h"
#endif