Я работаю над проектом 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