Пример печати Linux / CUPS Qt

Мне нужно использовать CUPS API в Qt для обнаружения и установки принтеров. Проблема в том, что я не могу заставить Qt обнаруживать заголовочный файл cups.h. Пока я пробовал (как с ‹>, так и с" "):

#include <cups/cups.h>

и

#include </usr/local/include/cups/cups.h>

В файле .pro я также попытался добавить:

INCLUDEPATH += /usr/local/include/cups

Каждый раз я получаю «cups / cups.h: нет такого файла или каталога». Так что кто-нибудь может предоставить минимальный пример или HOWTO, которые показывают, как включить и использовать CUPS в приложении Qt.

Спасибо!

PS: Я не уверен, актуально ли это, но я, вероятно, должен добавить, что я скомпилировал Qt для Raspberry Pi.


person luffy    schedule 10.02.2015    source источник
comment
У вас действительно есть /usr/local/include/cups/cups.h? Учитывая, что явный путь явно не работает, использование qmake не имеет значения. Ваш компилятор C ++ просто не может найти этот файл.   -  person MSalters    schedule 10.02.2015
comment
/usr/local/include/cups/cups.h существует на моей машине разработки, но не на целевой (Raspberry Pi). Нужно ли мне кросс-компилировать CUPS вместе с Qt, чтобы использовать его?   -  person luffy    schedule 10.02.2015
comment
Вы должны установить заголовки чашек в свой sysroot, похоже.   -  person peppe    schedule 10.02.2015
comment
Спасибо! Добавление заголовков в sysroot сработало, но теперь я получаю неопределенную ссылку на `cupsGetDefault '.... Я понял, что в нем не хватает библиотеки, поэтому я добавил LIBS + = -lcups в свой файл проекта, но он говорит, что не могу найти -люкс!   -  person luffy    schedule 10.02.2015
comment
Библиотеки - это не волшебство. Это просто реализация, т.е. код. И вам нужно запустить этот код на RPi, так что лучше это будет код RPi. в библиотеке   -  person MSalters    schedule 10.02.2015
comment
возможный дубликат Как добавить путь включения в Qt Creator?   -  person sashoalm    schedule 11.02.2015
comment
@MSalters, ты был абсолютно прав! Я делал ссылку на библиотеку на моей машине разработки, а не на малиновую! Быстрый (find -name * cups.so *) помог мне найти правильный Lib. Спасибо!   -  person luffy    schedule 12.02.2015
comment
Почему бы не указать принтер напрямую с помощью поддержки печати Qt? У меня это работает, я могу перечислить все принтеры, настроенные в cups.   -  person KernelPanic    schedule 16.06.2016


Ответы (1)


Установите библиотеки "libcups2-dev".

 sudo apt-get install libcups2-dev

затем найдите файл библиотеки

find / -type f -name "*.a"

вы получите ответ со всеми файлами библиотеки .a с указанием местоположения

найдите в списке файл "libcups.a".

example : /home/Desktop/cups-1.7.5/cups/libcups.a

Добавьте путь к файлу назначения в файл проекта Qt .pro

LIBS += "../release/build/arm926/libcups.a"
person tharunkumar    schedule 03.03.2015