Предупреждения компилятора с помощью libgcrypt v1.5.0

Когда я собираю пример программы с GCRYPT_NO_DEPRECATED определено, я получаю следующие 6 предупреждений:

/usr/local/Cellar/libgcrypt/1.5.0/include/gcrypt.h:1336: warning: ‘gcry_ac_io_mode_t’ is deprecated
/usr/local/Cellar/libgcrypt/1.5.0/include/gcrypt.h:1337: warning: ‘gcry_ac_io_type_t’ is deprecated
/usr/local/Cellar/libgcrypt/1.5.0/include/gcrypt.h:1344: warning: ‘gcry_ac_data_read_cb_t’ is deprecated
/usr/local/Cellar/libgcrypt/1.5.0/include/gcrypt.h:1358: warning: ‘gcry_ac_data_write_cb_t’ is deprecated
/usr/local/Cellar/libgcrypt/1.5.0/include/gcrypt.h:1393: warning: ‘gcry_md_algo_t’ is deprecated
/usr/local/Cellar/libgcrypt/1.5.0/include/gcrypt.h:1401: warning: ‘gcry_md_algo_t’ is deprecated

Определение вручную _GCRYPT_IN_LIBGCRYPT устраняет 6 предупреждений, но руководство довольно строго в своем наставлении:

Префиксы имен с одним префиксом подчеркивания зарезервированы для внутреннего использования и никогда не должны использоваться приложением.

Так как же скомпилировать заголовок gcrypt без предупреждений?

1 ответ

Решение

Автор gcrypt говорит: "Это ошибка в некоторых компиляторах"

Предлагаемое решение -

#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
before the include, and
#pragma GCC diagnostic warning "-Wdeprecated-declarations"

http://lists.gnupg.org/pipermail/gcrypt-devel/2011-July/001829.html

http://lists.gnupg.org/pipermail/gcrypt-devel/2011-July/001830.html

Другие вопросы по тегам