我一直在尝试使用OpenSSL来检索安全网页。我有一个成功的程序,但它编译了以下警告:
warning: assignment discards ‘const’ qualifier from pointer target type [enabled by default]
为了理解这个问题,我已将代码减少到以下内容,以达到相同的警告:
#include <openssl/ssl.h>
int main(void)
{
SSL_METHOD *method;
method = SSLv23_client_method();
}
似乎SSL_METHOD是一个声明为常量的结构。
有没有办法从声明中删除'const'关键字,以便此错误消失?或者我必须确切地找出结构的构成,然后在没有'const'关键字的情况下重新创建它?
答案 0 :(得分:4)
SSL_METHOD需要一个常量类型:
const SSL_METHOD *method;
将编译而不会出错。例如,请参阅man ssl
:
const SSL_METHOD *SSLv2_client_method(void);
Constructor for the SSLv2 SSL_METHOD structure for a dedicated client.