Косвенные #include
От: igna Россия  
Дата: 25.08.09 11:22
Оценка:
Есть такая всемирно известная библиотека 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


Теперь попробуйте скажите мне, что я неправ.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.