Я пытался создать папку для каждой архитектуры, которую может поддерживать мой код. В этой папке находятся файлы, специфичные для платформы. Я включаю их следующим образом:
#define STR(x) #x
#define ASSTR(x) STR(x)
#include ASSTR(ARCHITECTURE/sizes.h)
Моя строка компиляции в make выглядит следующим образом:
gcc -o $@ -c $< -DARCHITECTURE=i386
Что работает, пока я не определю АРХИТЕКТУРУ как i386. Когда это происходит, он ищет файл 1 / sizes.h, поэтому я предполагаю, что он уже где-то определен.