Предупреждения компилятора с помощью 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