아하
생활

생활꿀팁

든든한오징어170
든든한오징어170

error: aggregate ‘EVP_CIPHER_CTX ctx’ has incomplete type and cannot be defined

코인 프로그램을 만드는 데

이런 오류가 뜨네요

crypter.cpp:72:20: error: aggregate ‘EVPCIPHERCTX ctx’ has incomplete type and cannot be defined

무엇이 잘못된 건지??

어렵네요

우분투 최신버전 사용하고 있으며, openssl 도 최신버전으로 계속 여러번 설치하고 있습니다.

55글자 더 채워주세요.
2개의 답변이 있어요!
  • 파란발구지239
    파란발구지239

    OpenSLS 1.1.0 이후 부터 EVP CIPHERCTX에 대한 문법이 변경된것으로 알고 있습니다.

    버전 1.0.0

    EVPCIPHERCTX ctx;

    EVPCIPHERCTX_init(&ctx);

    버전 1.1.0

    EVPCIPHERCTX *ctx = EVPCIPHERCTX_new();

    EVPCIPHERCTX_init(ctx);

    후처리

    버전 1.0.0

    EVPCIPHERCTX_cleanup(&ctx);

    버전 1.1.0

    EVPCIPHERCTX_free(ctx);

    위와 같은 방법으로 버전에 따라 문법이 변경된 경우가 있으니 한번 확인해보시기 바랍니다.

  • openssl 1.1.x부터 EVP_CIPHET_CTX structure는 구조체 자체를 변수로 사용하지않고,

    포인터형에 아래와같이 할당하여사용하여야합니다.

    EVPCIPHERCTX *ctx=EVP_CIPHER_CTX_new();

    아마 openssl을 1.1.x사용하시면서 해당 코드에서 위 구조체를 직접 변수로 사용하여 에러가발생하는것같네요

    두가지시도방법이 있겠습니다.

    1)openssl을 1.1.x사용하는 상태에서 에러발생하는코드를 위와같이 포인터 형 방식으로 수정한다.

    2)openssl버젼을 1.0.x로 링크하여사용한다