아핫뉴스실시간 인기검색어
아핫뉴스 화산 이미지
아하

생활

생활꿀팁

든든한오징어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로 링크하여사용한다