Есть такая всемирно известная библиотека ICU. В одном из файлов заголовком, а именно в
umachine.h, находящемся в папке
icu/include/unicode, есть такие директивы включения других заголовочных файлов:
#if defined(U_PALMOS)
# include "unicode/ppalmos.h"
#elif defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64)
# include "unicode/pwin32.h"
#else
# include "unicode/platform.h"
#endif
То есть несмотря на то, что
umachine.h сам находится в
unicode, имя последнего все же появляется в директивах. Как следствие для компиляции любой программы, прямо или
косвенно инклюдирующей
umachine.h, должен устанавливаться include path к
icu/include.
Я считаю, что авторы библиотеки поступили неправильно, соответствующий участок кода дожен был выглядеть так:
#if defined(U_PALMOS)
# include "ppalmos.h"
#elif defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64)
# include "pwin32.h"
#else
# include "platform.h"
#endif
Теперь попробуйте скажите мне, что я неправ.