1

Здравствуйте. Не разу не собирал приложения. Все что есть в репозиториях удовлетворяло на все 100. Но вот понадобилась одна бяка по работе - wkhtmltopdf (конвертер из хтмл в пдф). Вроде все делаю по офф инструкции, но на последнем этапе получаю пачку ошибок. Возможно есть какие то тонкости или чего то не учитываю (не знаю).

Если не затруднит, можно разъяснить на примере данного приложения как их собирать  ah.

Заранее благодарен за ответ.

2

nik222,
Знать бы вашу систему ещё было бы неплохо.

3

Извините. Centos 6.3 (как x86_64 так и i686)

4

nik222,
Один из вариантов: http://chooselinux.org.ua/ustanovka-wkh … entos-6-2/

или так, на примере 0.10 http://pastebin.com/0zrtDC7i


или пересобрать с помощью rpmbuild пакет от федоры17 (сорцы http://dl.fedoraproject.org/pub/fedora/ … 17.src.rpm )

5

Неплохо бы еще увидеть, на чем обваливается сборка.

Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Arch Linux/Xfce/Xiaomi Mi Notebook Pro 15.6 | Slackware64-current/Xfce/Lenovo G580

6 (26.02.2013 00:28:50 отредактировано nik222)

Спасибо.

2-я ссылка - вариант подходит, если ставить версию 0.9, в 0.10 ряд ошибок, не позволяющих нормально работать. В 0.9 впрочем тоже.
3-я ссылка - 0.11 не заводиться, возможно не хватает каких то зависимостей, каких  - фиг его знает.....
1-я ссылка - именно так собирать и не получается. Если с самого начала:

# yum groupinstall "Development Tools"

не проходит. Если только так :

yum --disablerepo='epel' groupinstall "Development Tools"

и я если честно не знаю правильно это или нет


Перенесу в соответствующий раздел
verg

7

nik222 пишет:

не проходит

что значит не проходит?

8

Показывай что ты делаешь и лог ошибки. Не надо пересказывать своими словами.

9

На последней стадии получаю

cd src/lib/ && make -f Makefile 
make[1]: Entering directory `/root/downloads/wkhtmltopdf/src/lib'
g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DMAJOR_VERSION=0 -DMINOR_VERSION=12 -DPATCH_VERSION=0 -DBUILD= -DQT_SHARED -DBUILDING_DLL -D__WKHTMLTOX_UNDEF_QT_DLL__ -DQT_NO_DEBUG -DQT_WEBKIT_LIB -DQT_SVG_LIB -DQT_XMLPATTERNS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I../../../wkqt/mkspecs/linux-g++-64 -I. -I../../../wkqt/include/QtCore -I../../../wkqt/include/QtNetwork -I../../../wkqt/include/QtGui -I../../../wkqt/include/QtXmlPatterns -I../../../wkqt/include/QtSvg -I../../../wkqt/include/QtWebKit -I../../../wkqt/include -I../../include -I../../build -o ../../build/pdfconverter.o ../lib/pdfconverter.cc
In file included from ../lib/pdfconverter.cc:27:
../lib/pdfconverter_p.hh: In constructor ‘wkhtmltopdf::PageObject::PageObject(const wkhtmltopdf::settings::PdfObject&, const QString*)’:
../lib/pdfconverter_p.hh:97: ошибка: в классе ‘wkhtmltopdf::PageObject’ не имеет поля с именем ‘headerReserveHeight’
../lib/pdfconverter_p.hh:97: ошибка: в классе ‘wkhtmltopdf::PageObject’ не имеет поля с именем ‘footerReserveHeight’
../lib/pdfconverter_p.hh:98: ошибка: в классе ‘wkhtmltopdf::PageObject’ не имеет поля с именем ‘measuringHeader’
../lib/pdfconverter_p.hh:98: ошибка: в классе ‘wkhtmltopdf::PageObject’ не имеет поля с именем ‘measuringFooter’
../lib/pdfconverter_p.hh: At global scope:
../lib/pdfconverter_p.hh:137: ошибка: ISO C++ запрещает декларации ‘QWebPrinter’ без типа
../lib/pdfconverter_p.hh:137: ошибка: expected ‘;’ before ‘*’ token
../lib/pdfconverter.cc: In member function ‘virtual void wkhtmltopdf::PdfConverterPrivate::beginConvert()’:
../lib/pdfconverter.cc:169: ошибка: ‘class wkhtmltopdf::PageObject’ has no member named ‘measuringHeader’
../lib/pdfconverter.cc:169: ошибка: нет декларации ‘measuringHFLoader’ в этой области видимости
../lib/pdfconverter.cc:174: ошибка: ‘class wkhtmltopdf::PageObject’ has no member named ‘headerReserveHeight’
../lib/pdfconverter.cc:188: ошибка: ‘class wkhtmltopdf::PageObject’ has no member named ‘measuringFooter’
../lib/pdfconverter.cc:188: ошибка: нет декларации ‘measuringHFLoader’ в этой области видимости
../lib/pdfconverter.cc:193: ошибка: ‘class wkhtmltopdf::PageObject’ has no member named ‘footerReserveHeight’
../lib/pdfconverter.cc:210: ошибка: нет декларации ‘measuringHFLoader’ в этой области видимости
../lib/pdfconverter.cc:221: ошибка: ‘class wkhtmltopdf::PageObject’ has no member named ‘headerReserveHeight’
../lib/pdfconverter.cc:222: ошибка: ‘class wkhtmltopdf::PageObject’ has no member named ‘footerReserveHeight’
../lib/pdfconverter.cc: In member function ‘qreal wkhtmltopdf::PdfConverterPrivate::calculateHeaderHeight(wkhtmltopdf::PageObject&, QWebPage&)’:
../lib/pdfconverter.cc:236: ошибка: нет декларации ‘QWebPrinter’ в этой области видимости
../lib/pdfconverter.cc:236: ошибка: expected ‘;’ before ‘wp’
../lib/pdfconverter.cc:237: ошибка: нет декларации ‘wp’ в этой области видимости
../lib/pdfconverter.cc:232: предупреждение: неиспользуемая переменная ‘s’
../lib/pdfconverter.cc: In member function ‘void wkhtmltopdf::PdfConverterPrivate::preprocessPage(wkhtmltopdf::PageObject&)’:
../lib/pdfconverter.cc:273: ошибка: нет декларации ‘outline’ в этой области видимости
../lib/pdfconverter.cc:291: ошибка: нет декларации ‘QWebPrinter’ в этой области видимости
../lib/pdfconverter.cc:291: ошибка: expected ‘;’ before ‘wp’
../lib/pdfconverter.cc:292: ошибка: нет декларации ‘wp’ в этой области видимости
../lib/pdfconverter.cc:296: ошибка: нет декларации ‘outline’ в этой области видимости
../lib/pdfconverter.cc:297: ошибка: ‘class wkhtmltopdf::PageObject’ has no member named ‘localLinks’
../lib/pdfconverter.cc:297: ошибка: ‘class wkhtmltopdf::PageObject’ has no member named ‘anchors’
../lib/pdfconverter.cc:299: ошибка: нет декларации ‘outline’ в этой области видимости
../lib/pdfconverter.cc: In member function ‘void wkhtmltopdf::PdfConverterPrivate::pagesLoaded(bool)’:
../lib/pdfconverter.cc:346: ошибка: ‘class wkhtmltopdf::PageObject’ has no member named ‘headerReserveHeight’
../lib/pdfconverter.cc:347: ошибка: ‘class wkhtmltopdf::PageObject’ has no member named ‘footerReserveHeight’
../lib/pdfconverter.cc: In member function ‘void wkhtmltopdf::PdfConverterPrivate::handleTocPage(wkhtmltopdf::PageObject&)’:
../lib/pdfconverter.cc:653: ошибка: нет декларации ‘QWebPrinter’ в этой области видимости
../lib/pdfconverter.cc:653: ошибка: expected ‘;’ before ‘wp’
../lib/pdfconverter.cc:654: ошибка: нет декларации ‘wp’ в этой области видимости
../lib/pdfconverter.cc:660: ошибка: нет декларации ‘outline’ в этой области видимости
../lib/pdfconverter.cc:660: ошибка: ‘class wkhtmltopdf::PageObject’ has no member named ‘localLinks’
../lib/pdfconverter.cc:660: ошибка: ‘class wkhtmltopdf::PageObject’ has no member named ‘anchors’
../lib/pdfconverter.cc: In member function ‘void wkhtmltopdf::PdfConverterPrivate::measuringHeadersLoaded(bool)’:
../lib/pdfconverter.cc:726: ошибка: ‘class wkhtmltopdf::PageObject’ has no member named ‘measuringHeader’
../lib/pdfconverter.cc:728: ошибка: ‘class wkhtmltopdf::PageObject’ has no member named ‘headerReserveHeight’
../lib/pdfconverter.cc:728: ошибка: ‘class wkhtmltopdf::PageObject’ has no member named ‘measuringHeader’
../lib/pdfconverter.cc:731: ошибка: ‘class wkhtmltopdf::PageObject’ has no member named ‘measuringFooter’
../lib/pdfconverter.cc:733: ошибка: ‘class wkhtmltopdf::PageObject’ has no member named ‘footerReserveHeight’
../lib/pdfconverter.cc:733: ошибка: ‘class wkhtmltopdf::PageObject’ has no member named ‘measuringFooter’
../lib/pdfconverter.cc: In member function ‘void wkhtmltopdf::PdfConverterPrivate::spoolPage(size_t)’:
../lib/pdfconverter.cc:758: ошибка: нет декларации ‘webPrinter’ в этой области видимости
../lib/pdfconverter.cc:764: ошибка: ‘class QPainter’ has no member named ‘addTextField’
../lib/pdfconverter.cc:774: ошибка: ‘class QPainter’ has no member named ‘addCheckBox’
../lib/pdfconverter.cc:784: ошибка: ‘class QPainter’ has no member named ‘addAnchor’
../lib/pdfconverter.cc:789: ошибка: ‘class QPainter’ has no member named ‘addLink’
../lib/pdfconverter.cc:794: ошибка: ‘class QPainter’ has no member named ‘addHyperlink’
../lib/pdfconverter.cc:796: ошибка: нет декларации ‘endPage’ в этой области видимости
../lib/pdfconverter.cc: In member function ‘void wkhtmltopdf::PdfConverterPrivate::spoolTo(size_t)’:
../lib/pdfconverter.cc:803: предупреждение: сравнение знакового и беззнакового целых выражений
../lib/pdfconverter.cc: In member function ‘void wkhtmltopdf::PdfConverterPrivate::beginPrintObject(wkhtmltopdf::PageObject&)’:
../lib/pdfconverter.cc:836: ошибка: нет декларации ‘webPrinter’ в этой области видимости
../lib/pdfconverter.cc:836: ошибка: expected type-specifier before ‘QWebPrinter’
../lib/pdfconverter.cc:836: ошибка: expected ‘;’ before ‘QWebPrinter’
../lib/pdfconverter.cc:840: ошибка: нет декларации ‘outline’ в этой области видимости
../lib/pdfconverter.cc:840: ошибка: ‘class wkhtmltopdf::PageObject’ has no member named ‘anchors’
../lib/pdfconverter.cc:843: ошибка: ‘class wkhtmltopdf::PageObject’ has no member named ‘anchors’
../lib/pdfconverter.cc:844: ошибка: ‘class wkhtmltopdf::PageObject’ has no member named ‘anchors’
../lib/pdfconverter.cc:847: ошибка: ‘class wkhtmltopdf::PageObject’ has no member named ‘localLinks’
../lib/pdfconverter.cc:848: ошибка: ‘class wkhtmltopdf::PageObject’ has no member named ‘localLinks’
../lib/pdfconverter.cc:851: ошибка: ‘class wkhtmltopdf::PageObject’ has no member named ‘externalLinks’
../lib/pdfconverter.cc:852: ошибка: ‘class wkhtmltopdf::PageObject’ has no member named ‘externalLinks’
../lib/pdfconverter.cc: In member function ‘void wkhtmltopdf::PdfConverterPrivate::endPrintObject(wkhtmltopdf::PageObject&)’:
../lib/pdfconverter.cc:879: ошибка: нет декларации ‘webPrinter’ в этой области видимости
../lib/pdfconverter.cc:884: ошибка: аргумент типа ‘<type error>’ задан для ‘delete’; должен быть указатель
../lib/pdfconverter.cc: At global scope:
../lib/pdfconverter.cc:878: предупреждение: параметр ‘obj’ не используется
make[1]: *** [../../build/pdfconverter.o] Ошибка 1
make[1]: Leaving directory `/root/downloads/wkhtmltopdf/src/lib'
make: *** [sub-src-lib-make_default-ordered] Ошибка 2

что значит не проходит?

никакого результата(реакции) на команду

10

Похоже на кривой исходный код. Сообщи об этом разработчику.
Это вывод команды из пункта 4? А в пункте 3 ты что-нибудь делаешь?

И ещё, скачай пакет от федоры http://dl.fedoraproject.org/pub/fedora/ … 17.src.rpm
Выполни от рута yum-builddep wkhtmltopdf-0.11.0-0.2.rc1.fc17.src.rpm
Затем выполни от пользователя rpmbuild --rebuild wkhtmltopdf-0.11.0-0.2.rc1.fc17.src.rpm

Если соберётся, в конце будет написано где лежат готовые пакеты. Если нет, показывай лог сборки полностью, на http://fpaste.org например.

11

Не совсем в тему, но, возможно, как-то поможет.
Вот «гентушный» ebuild для сборки wkhtmltopdf — http://bpaste.net/show/79854/
Вот сам процесс сборки и установки — http://bpaste.net/show/79853/

Был, был и весь вышел...

12

Да не, есть же пакет под федору, там и спек есть. В нём всё просто.

13

Vascom пишет:

Если соберётся, в конце будет написано где лежат готовые пакеты.

Собралось, но:

Reduced Functionality:
  This version of wkhtmltopdf has been compiled against a version of QT without
  the wkhtmltopdf patches. Therefore some features are missing, if you need
  these features please use the static version.

  Currently the list of features only supported with patch QT includes:

 * Printing more then one HTML document into a PDF file.
 * Running without an X11 server.
 * Adding a document outline to the PDF file.
 * Adding headers and footers to the PDF file.
 * Generating a table of contents.
 * Adding links in the generated PDF file.
 * Printing using the screen media-type.
 * Disabling the smart shrink feature of webkit.

Для работы данной версии необходимо наличие Xserver, что не желательно
И еще момент. Собралось:

wkhtmltopdf-0.11.0-0.2.rc1.el6.x86_64.rpm  
wkhtmltopdf-debuginfo-0.11.0-0.2.rc1.el6.x86_64.rpm  
wkhtmltopdf-devel-0.11.0-0.2.rc1.el6.x86_64.rpm

а при проверке версии продукта получаю  wkhtmltopdf 0.10.0 rc2

А в пункте 3 ты что-нибудь делаешь?

Ага.  Только похоже что репозиторий gitorious.org/+wkhtml2pdf/qt/wkhtmltopdf-qt.git умер и приходиться отступать от мануала..............

14

Ну собралось и отлично.
Фича "Running without an X11 server" присутствует.
Не обращай внимания на проверку версии.

Вопрос решён? Или что-то всё же не устраивает?

15

wkhtmltopdf: cannot connect to X server

  ak

16

Как запускаешь?
Иксы установлены? Запущены?

17

Иксов нет.
Запускаю wkhtmltopdf google.com /_temp/test.pdf

18

В их хелпе /usr/share/doc/wkhtmltopdf-0.11.0/README_WKHTMLTOPDF написано:

Unfortunately the static binary is not particularly static, on Linux it depends
on both glibc and openssl, furthermore you will need to have an xserver
installed but not necessary running.

То есть иксы должны быть установлены. Но можно их не запускать.
you will need to have an xserver installed but not necessary running

19

На смежных форумах вроде как собирали без необходимости наличия X-ов. При установке Xserver та же ошибка. Запускается с xvfb, но это уже перебор по моему.

20

Ну может где-то в опциях сборки надо отключить поддержку иксов вообще. Найди как это сделать, подскажу как это в спек добавить и собрать пакет.

21 (26.02.2013 14:40:05 отредактировано nik222)

Ну может чушь, но вот нашел (под FreeBSD если не ошибаюсь):

Ну смотри, тебе надо сделать вот так во-первых, cd /usr/ports/converters/wkhtmltopdf && make install clean и в меню поставить галочку BUNDLER_LIBS, тогда соберет всё это дело без Хсов

22

Что

cd $SRC && ./configure --help

выдает?
$SRC -каталог, куда вы исходники распаковали.

Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Arch Linux/Xfce/Xiaomi Mi Notebook Pro 15.6 | Slackware64-current/Xfce/Lenovo G580

23

выдает?
$SRC -каталог, куда вы исходники распаковали.

http://pastebin.com/GTN6c6fb

24

ответ от разработчика на простыню ошибок приведенных выше:

Sorry but your LANG seems to be diffirent from C making it impossible
to figure out. Could you please compile with LANG=C ?

25

Запусти компиляцию с этим параметром для проверки, типа LANG=C make