2014-09-24 51 views
1

我一直在嘗試使用OpenSSL來檢索安全的網頁。我有一個成功的項目,但它與下面的警告編譯:試圖解決關於'const'限定符的警告

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'keywork,以便這個錯誤消失?或者我必須找出結構是由什麼構成的,然後在不使用'const'關鍵字的情況下重新創建它?

+1

這錯誤意味着'SSLv23_client_method'返回一個'常量SSL_METHOD *'... – 2014-09-24 19:28:13

+0

所以我只需要聲明指針爲const。 TYVM!成功了! – Deanie 2014-09-24 19:30:59

回答

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.