Выполнение примеров кода из библиотеки обработки изображений Leptonica - PullRequest
4 голосов
/ 16 февраля 2011

Я пытаюсь скомпилировать, а затем выполнить пример программы Leptonica colorquant_reg.c

Факты:

  • ОС: Ubuntu

  • Расположение: leptonlib-1.67/src/colorquant_reg.c

    (я переместил его в src, так как теперь не знал, как сообщить компилятору, что отсутствующий файл библиотеки allheaders.h находится в /src, а не в исходном расположении colorquant_reg.c leptonlib-1.67/prog )

  • Что я пробовал: gcc -I. colorquant_reg -o out

  • Ожидаемый результат: Исполняемый файл, который я мог бы использовать для цветного квантования моего .tif файла.

  • Ошибка:

    /temp/cckdQZcM.o: In function main':
    colorquant_reg.c:(.text+0x37: undefined reference to regTestSetup
    colorquant_reg.c:(.text+0xa5: undefined reference to regTestCleanup
    /tmp/cckdQZcM.o: In function TestImage'
    colorquant_reg.c:(.text+0xe0: undefined reference to pixRead
    
  • Вопрос 1: Как мне скомпилировать эту программу?

  • Вопрос 2: Появляется ли неопределенная ссылка из-за того, что я не смог добавить что-то еще?

ура

1 Ответ

6 голосов
/ 17 февраля 2011

Вот что я сделал:

  • Скачать http://www.leptonica.com/source/leptonlib-1.67.tar.gz
  • Извлеките его в /home/misha/src
  • ./configure; make
  • копия prog/colorquant_reg.c в /home/misha/Desktop/stackoverflow
  • опционально, отредактируйте /home/misha/Desktop/stackoverflow/colorquant_reg.c по своему вкусу - он больше не является частью библиотеки. Поэтому я думаю, что здесь вы можете добавить свои новые заголовки и т. Д.

Затем из /home/misha/Desktop/stackoverflow я могу скомпилировать файл с помощью этой команды:

export LIBLEPT=/home/misha/src/leptonlib-1.67/
gcc colorquant_reg.c -I$LIBLEPT/src -L$LIBLEPT/src/.libs -llept -o colorquant_reg.out

Первая строка просто для удобства - теперь мы можем использовать $LIBLEPT для ссылки на длинный путь. Вторая строка, что делает компиляция:

  • -I сообщает компилятору, где искать включаемые файлы
  • -L сообщает компилятору, где искать файлы библиотеки (для компоновщика)
  • -llept говорит компоновщику связываться с leptonica (он будет искать liblept.so
  • -o указывает выходной файл, который теперь находится в ~/Desktop/stackoverflow/colorquant_reg.out
...