Closed paulmenzel closed 5 years ago
I messed up the include and library paths. Sorry.
Actually it is still happening with QPDF 8.4.0.
$ tar xf ~/cups-filters-1.22.5.tar.xz
$ cd cups-filters-1.22.5.tar.xz
$ ./configure --without-rcdir --disable-avahi --without-php --disable-dbus --with-cups-config=/package/tonerlow/cups-2.1.4/bin/cups-config
[…]
configure:
==============================================================================
Environment settings:
CFLAGS: -g -O2 -Wall -std=gnu11 -D_GNU_SOURCE
CXXFLAGS: -g -O2 -Wall -D_GNU_SOURCE
LDFLAGS:
Build configuration:
cups-config: /package/tonerlow/cups-2.1.4/bin/cups-config
font directory: /etc/fonts/conf.d
foomatic: yes
init directory:
cups dom socket: /var/run/cups/cups.sock
poppler: yes
ghostscript: yes
gs-path: system
mutool: yes
mutool-path: system
ippfind-path: system
imagefilters: yes
jpeg: yes
pdftocairo-path: system
pdftops: hybrid
pdftops-path: system
png: yes
php: no
php-config: system
shell: /bin/bash
test-font: /usr/share/fonts/dejavu/DejaVuSans.ttf
tiff: yes
avahi: no
dbus: no
browsing: dnssd cups
werror: no
braille: yes
braille tables: /usr/share/liblouis/tables
driverless: yes
apple-raster: urftopdf
pclm: yes
driverless auto-setup: no
ijs: no
opvp: no
==============================================================================
$ make -j1 V=1
[…]
make[1]: Entering directory '/dev/shm/cups-filters-1.22.5'
/bin/sh ./libtool --tag=CC --mode=link gcc -g -O2 -Wall -std=gnu11 -D_GNU_SOURCE -o ttfread main.o libfontembed.la -lldap -ltiff -ljpeg -ldl
libtool: link: gcc -g -O2 -Wall -std=gnu11 -D_GNU_SOURCE -o .libs/ttfread main.o ./.libs/libfontembed.so -lldap -ltiff -ljpeg -ldl
g++ -DHAVE_CONFIG_H -I. -std=c++0x -I/package/tonerlow/cups-2.1.4/include -g -O2 -Wall -D_GNU_SOURCE -MT pdftopdf-qpdf_pdftopdf_processor.o -MD -MP -MF .deps/pdftopdf-qpdf_pdftopdf_processor.Tpo -c -o pdftopdf-qpdf_pdftopdf_processor.o `test -f 'filter/pdftopdf/qpdf_pdftopdf_processor.cc' || echo './'`filter/pdftopdf/qpdf_pdftopdf_processor.cc
In file included from /usr/include/qpdf/QPDFPageObjectHelper.hh:26:0,
from /usr/include/qpdf/QPDFPageDocumentHelper.hh:26,
from filter/pdftopdf/qpdf_pdftopdf_processor.cc:8:
/usr/include/qpdf/QPDFAnnotationObjectHelper.hh:54:23: error: ‘Rectangle’ in ‘class QPDFObjectHandle’ does not name a type
QPDFObjectHandle::Rectangle getRect();
^~~~~~~~~
/usr/include/qpdf/QPDFAnnotationObjectHelper.hh:98:31: error: ‘an_invisible’ was not declared in this scope
int forbidden_flags = an_invisible | an_hidden);
^~~~~~~~~~~~
/usr/include/qpdf/QPDFAnnotationObjectHelper.hh:98:46: error: ‘an_hidden’ was not declared in this scope
int forbidden_flags = an_invisible | an_hidden);
^~~~~~~~~
In file included from /usr/include/qpdf/QPDFPageDocumentHelper.hh:26:0,
from filter/pdftopdf/qpdf_pdftopdf_processor.cc:8:
/usr/include/qpdf/QPDFPageObjectHelper.hh:142:47: error: ‘QPDFObjectHandle::TokenFilter’ has not been declared
void filterPageContents(QPDFObjectHandle::TokenFilter* filter,
^~~~~~~~~~~
/usr/include/qpdf/QPDFPageObjectHelper.hh:157:41: error: ‘TokenFilter’ is not a member of ‘QPDFObjectHandle’
PointerHolder<QPDFObjectHandle::TokenFilter> token_filter);
^~~~~~~~~~~
/usr/include/qpdf/QPDFPageObjectHelper.hh:157:41: error: ‘TokenFilter’ is not a member of ‘QPDFObjectHandle’
/usr/include/qpdf/QPDFPageObjectHelper.hh:157:52: error: template argument 1 is invalid
PointerHolder<QPDFObjectHandle::TokenFilter> token_filter);
^
/usr/include/qpdf/QPDFPageObjectHelper.hh:193:23: error: ‘Matrix’ in ‘class QPDFObjectHandle’ does not name a type
QPDFObjectHandle::Matrix getMatrixForTransformations(bool invert = false);
^~~~~~
/usr/include/qpdf/QPDFPageObjectHelper.hh:230:27: error: ‘QPDFObjectHandle::Rectangle’ has not been declared
QPDFObjectHandle::Rectangle rect,
^~~~~~~~~
In file included from filter/pdftopdf/qpdf_pdftopdf_processor.cc:8:0:
/usr/include/qpdf/QPDFPageDocumentHelper.hh:109:31: error: ‘an_invisible’ was not declared in this scope
int forbidden_flags = an_invisible | an_hidden);
^~~~~~~~~~~~
/usr/include/qpdf/QPDFPageDocumentHelper.hh:109:46: error: ‘an_hidden’ was not declared in this scope
int forbidden_flags = an_invisible | an_hidden);
^~~~~~~~~
filter/pdftopdf/qpdf_pdftopdf_processor.cc: In member function ‘void QPDF_PDFTOPDF_Processor::start(int)’:
filter/pdftopdf/qpdf_pdftopdf_processor.cc:531:27: error: ‘an_print’ was not declared in this scope
dh.flattenAnnotations(an_print);
^~~~~~~~
filter/pdftopdf/qpdf_pdftopdf_processor.cc:531:27: note: suggested alternative: ‘asprintf’
dh.flattenAnnotations(an_print);
^~~~~~~~
asprintf
make[1]: *** [Makefile:4251: pdftopdf-qpdf_pdftopdf_processor.o] Error 1
make[1]: Leaving directory '/dev/shm/cups-filters-1.22.5'
make: *** [Makefile:2077: all] Error 2
Are you sure that you did not mix up QPDF versions on your system? Is there actually only one version of QPDF and also the header files of only this version installed? Note that if you have QPDF of your distribution installed and in addition install QPDF from source, they get installed in different locations.
@jberkenbilt, could you have a look here? For me cups-filters 1.22.5 builds perfectly with the QPDF 8.4.0 installed on Ubuntu Disco (19.04).
My first thought also was that it looks like there are headers from multiple qpdf versions installed. I'm not sure what system you are building on, but make sure you have installed version 8.4.0 of the dev package, e.g. libqpdf-dev or qpdf-devel or whatever it's called on your system. If you have 8.2.1 of the dev package and 8.4.0 of the executable package, you would actually be building against 8.2.1.
@paulmenzel, could you please check your system whether there is perhaps more than one QPDF version installed and make sure that ONLY QPDF 8.4.0 and its header files are installed. Then try building cups-filters again and report back here. Thanks.
Probably simply an issue of more than one QPDF version installed and no answer from original poster, closing ...
Trying to build cups-filters with QPDF 8.4.0, it fails with the error below.