Closed tugluk closed 2 years ago
The first issue seems to have been caused by my not appreciating the implications of the changes made in #141.
.pc
file or a CMake configuration file. My distribution's TCLAP package happens to contain a PkgConfig .pc
file:$ lsb_release --description
Description: Ubuntu 18.04.6 LTS
$ dpkg-query --status libtclap-dev | grep '^Status: '
Status: install ok installed
$ dpkg --listfiles libtclap-dev | grep '\.pc$'
/usr/lib/x86_64-linux-gnu/pkgconfig/tclap.pc
When you install from source, though, you get neither a PkgConfig .pc
file nor a CMake configuration file.
include/cmdline.hpp
uses) and TCLAP 1.4 (the version required in #141).I'm working on both issues on the find-tclap
branch. I'll link this issue in the pull request I make.
The second issue might be fixed by #159. Can you checkout 9e057f6c8d2263171ef90294d4548969ac3c350b and see whether you still get the error?
MGARD-1.0.0/include/cmdline.hpp:58:18: error: ‘XorHandler’ in namespace ‘TCLAP’ does not name a type
virtual TCLAP::XorHandler &getXorHandler() override;
^~~~~~compilation terminated due to -Wfatal-errors. make[2]: *** [CMakeFiles/mgard-executable.dir/build.make:90: CMakeFiles/mgard-executable.dir/src/cmdline.cpp.o] Error 1
Fixing this will save users a lot of headache and frustruation. Should be fixable by changing CMake method for finding packages, but I don't know how.
[ 50%] Building CXX object CMakeFiles/mgard-library.dir/src/compressors.cpp.o
MGARD-1.0.0/src/compressors.cpp: In function ‘void mgard::decompress_memory_huffman(unsigned char*, std::size_t, long int*, std::size_t)’:
MGARD-1.0.0/src/compressors.cpp:293:59: error: cannot convert ‘unsigned char*’ to ‘int*’
decompress_memory_z(buf, data_len - 3 * sizeof(size_t), huffman_encoding_p,
^~~~~~~~~~~~~~~~~~
compilation terminated due to -Wfatal-errors.
I think this is due to a mismatch between signatures of
decompress_memory_z
anddecompress_memory_zstd
, and should be an easy enough fix; by shifting some declerations into the corresponding conditional compilation block. But as-is, MGARD binary fails to compile with zlib.