libdmg-hfsplus icon indicating copy to clipboard operation
libdmg-hfsplus copied to clipboard

Compilation error: field ‘hmacCTX’ has incomplete type

Open majenkotech opened this issue 6 years ago • 3 comments

Complete build log:

matt@hp:~/libdmg-hfsplus$ mkdir build
matt@hp:~/libdmg-hfsplus$ cd build
matt@hp:~/libdmg-hfsplus/build$ cmake ..
-- The C compiler identification is GNU 7.3.0
-- The CXX compiler identification is GNU 7.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so (found version "1.1.0g") 
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.11") 
-- Configuring done
-- Generating done
-- Build files have been written to: /home/matt/libdmg-hfsplus/build
matt@hp:~/libdmg-hfsplus/build$ make
Scanning dependencies of target common
[  3%] Building C object common/CMakeFiles/common.dir/abstractfile.c.o
[  6%] Linking C static library libcommon.a
[  6%] Built target common
Scanning dependencies of target hfs
[  9%] Building C object hfs/CMakeFiles/hfs.dir/btree.c.o
[ 12%] Building C object hfs/CMakeFiles/hfs.dir/catalog.c.o
[ 16%] Building C object hfs/CMakeFiles/hfs.dir/extents.c.o
[ 19%] Building C object hfs/CMakeFiles/hfs.dir/xattr.c.o
[ 22%] Building C object hfs/CMakeFiles/hfs.dir/fastunicodecompare.c.o
[ 25%] Building C object hfs/CMakeFiles/hfs.dir/flatfile.c.o
[ 29%] Building C object hfs/CMakeFiles/hfs.dir/hfslib.c.o
[ 32%] Building C object hfs/CMakeFiles/hfs.dir/rawfile.c.o
[ 35%] Building C object hfs/CMakeFiles/hfs.dir/utility.c.o
[ 38%] Building C object hfs/CMakeFiles/hfs.dir/volume.c.o
[ 41%] Building C object hfs/CMakeFiles/hfs.dir/hfscompress.c.o
[ 45%] Linking C static library libhfs.a
[ 45%] Built target hfs
Scanning dependencies of target dmg
[ 48%] Building C object dmg/CMakeFiles/dmg.dir/adc.c.o
[ 51%] Building C object dmg/CMakeFiles/dmg.dir/base64.c.o
[ 54%] Building C object dmg/CMakeFiles/dmg.dir/checksum.c.o
[ 58%] Building C object dmg/CMakeFiles/dmg.dir/dmgfile.c.o
[ 61%] Building C object dmg/CMakeFiles/dmg.dir/dmglib.c.o
[ 64%] Building C object dmg/CMakeFiles/dmg.dir/filevault.c.o
In file included from /home/matt/libdmg-hfsplus/dmg/filevault.c:6:0:
/home/matt/libdmg-hfsplus/includes/dmg/filevault.h:82:11: error: field ‘hmacCTX’ has incomplete type
  HMAC_CTX hmacCTX;
           ^~~~~~~
/home/matt/libdmg-hfsplus/dmg/filevault.c: In function ‘fvClose’:
/home/matt/libdmg-hfsplus/dmg/filevault.c:180:2: warning: implicit declaration of function ‘HMAC_CTX_cleanup’; did you mean ‘HMAC_CTX_get_md’? [-Wimplicit-function-declaration]
  HMAC_CTX_cleanup(&(info->hmacCTX));
  ^~~~~~~~~~~~~~~~
  HMAC_CTX_get_md
/home/matt/libdmg-hfsplus/dmg/filevault.c: In function ‘createAbstractFileFromFileVault’:
/home/matt/libdmg-hfsplus/dmg/filevault.c:237:2: warning: implicit declaration of function ‘HMAC_CTX_init’; did you mean ‘HMAC_CTX_new’? [-Wimplicit-function-declaration]
  HMAC_CTX_init(&(info->hmacCTX));
  ^~~~~~~~~~~~~
  HMAC_CTX_new
dmg/CMakeFiles/dmg.dir/build.make:182: recipe for target 'dmg/CMakeFiles/dmg.dir/filevault.c.o' failed
make[2]: *** [dmg/CMakeFiles/dmg.dir/filevault.c.o] Error 1
CMakeFiles/Makefile2:182: recipe for target 'dmg/CMakeFiles/dmg.dir/all' failed
make[1]: *** [dmg/CMakeFiles/dmg.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2

System: Ubuntu 64-bit bionic beaver.

majenkotech avatar Sep 15 '18 14:09 majenkotech

suspect this is version 1.1 of libssl - try installing libssl1.0.2 - worked for me on a debian:9 install

ianmorty avatar Nov 23 '18 14:11 ianmorty

On Ubuntu 18.04 @ianmorty's suggestion worked by installing the following package: sudo apt-get install libssl1.0-dev

nopara73 avatar Dec 14 '18 05:12 nopara73

Public service for anyone in e.g. 2020 who finds this and discovers it's hard to get libssl1.0 any more, head here and scroll down to the "Still facing this in 2020?" part of the thread. Got me running. https://github.com/rvm/rvm/issues/4764

Cattlesquat avatar Jul 20 '20 14:07 Cattlesquat