Subject: | does not want to compile on Linux |
Hi Björn
Unfortunately my attempt to compile Compress::Deflate7 on my Linux box
was unsuccessful. See an attachment with error log.
I wonder, is 7zip source code in the distribution for windows only?
After my unsuccessful attempt I downloaded p7zip_9.20.1 source code from
sourceforge and replaced all files that exists in 7zip/C, 7zip/CPP,
7zip/ASM with same from p7zip. Then tried to compile, get some errors,
edited some source code. So, now it compiles and works.
I attached a patch:
cd 7zip
zcat 7zip.patch.gz | patch -p1
Subject: | 7zip.patch.gz |
Message body not shown because it is not plain text.
Subject: | compile.txt |
$ perl Makefile.PL
Checking if your kit is complete...
Looks good
Writing Makefile for Compress::Deflate7
$ make
cp lib/Compress/Deflate7.pm blib/lib/Compress/Deflate7.pm
g++ -c -I7zip/CPP -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -fno-merge-constants -fno-strict-aliasing -pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -DVERSION=\"1.0\" -DXS_VERSION=\"1.0\" -fPIC "-I/home/oleg/perl/lib/CORE" InBuffer.cpp
g++ -c -I7zip/CPP -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -fno-merge-constants -fno-strict-aliasing -pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -DVERSION=\"1.0\" -DXS_VERSION=\"1.0\" -fPIC "-I/home/oleg/perl/lib/CORE" OutBuffer.cpp
g++ -c -I7zip/CPP -D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -fno-merge-constants -fno-strict-aliasing -pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -DVERSION=\"1.0\" -DXS_VERSION=\"1.0\" -fPIC "-I/home/oleg/perl/lib/CORE" StreamObjects.cpp
In file included from StreamObjects.cpp:1:0:
7zip/CPP/7zip/Common/StreamObjects.cpp: In member function 'void CByteDynBuffer::Free()':
7zip/CPP/7zip/Common/StreamObjects.cpp:43:12: error: 'free' was not declared in this scope
7zip/CPP/7zip/Common/StreamObjects.cpp: In member function 'bool CByteDynBuffer::EnsureCapacity(size_t)':
7zip/CPP/7zip/Common/StreamObjects.cpp:60:40: error: 'realloc' was not declared in this scope
7zip/CPP/7zip/Common/StreamObjects.cpp: In member function 'void CDynBufSeqOutStream::CopyToBuffer(CByteBuffer&) const':
7zip/CPP/7zip/Common/StreamObjects.cpp:81:30: error: conversion from 'const CByteDynBuffer' to 'const void*' is ambiguous
7zip/CPP/7zip/Common/StreamObjects.h:52:3: note: candidates are: CByteDynBuffer::operator const Byte*() const
7zip/CPP/7zip/Common/StreamObjects.h:51:3: note: CByteDynBuffer::operator Byte*() const
make: *** [StreamObjects.o] Error 1