1

definedを使用してサンプル プログラムをコンパイルすると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 つの警告が解決されますが、マニュアルはその推奨事項においてかなり厳格です。

先頭にアンダースコアが 1 つ付いた名前プレフィックスは、内部使用のために予約されており、アプリケーションで使用しないでください。

では、警告なしで gcrypt ヘッダーをコンパイルするにはどうすればよいでしょうか?

4

1 に答える 1

3

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

于 2012-10-10T23:53:07.510 に答える