0

G++ コンパイラを使用して公開証明書から有効期限を取得するために openssl 関数をコンパイルしているときに問題が発生しました。

エラーは、

error: expected unqualified-id before ‘not’ token
error: expected primary-expression before ‘)’ token 

コンパイル手順、

g++  main.c -o test -I /usr/include/openssl/ -lcrypto -lssl

すべてのヘッダー ファイルが含まれます。

私がコンパイルした以下のコード、

 main ()
{
        X509 *x;

        int n=0;

        unsigned char *not;            //expected unqualified-id before ‘not’ token ,expected initializer before ‘not’ token
        BIO *out;
        FILE *fp=fopen("/home/public.cer", "r");

        x = X509_new();
        x = PEM_read_X509(fp,NULL,NULL,NULL);
        fclose(fp);

        out = BIO_new(BIO_s_mem());
        ASN1_TIME_print(out, X509_get_notAfter(x));//expected primary-expression before ‘)’ token
        n = BIO_get_mem_data(out, &not);
        expiryStr = (char *) malloc (n+1);
        expiryStr[n] = '\0';
        memcpy(expiryStr, not, n);//expected primary-expression before ‘)’ token
    printf("Expiry Date====================%s\n",expiryStr);
        BIO_free(out);

        X509_free(x);        
}

このエラーの解決を手伝ってください。

4

1 に答える 1

3

「not」は C++ のキーワードです: http://en.cppreference.com/w/cpp/keyword。変数の名前を変更する必要があります。

于 2012-10-02T18:43:35.593 に答える