где находится libmagickwand-dev (я установил их все) и как я могу включить его в программу на C

Я установил все пакеты libmagick-dev (magickwand, magick++ и т. д.) в Ubuntu 16.04, но не знаю, где находится библиотека... Поэтому я не включил ее в свою программу на C.
Мне нужно использовать функции на уровне пикселей для проекта, который я разрабатываю
Когда я набираю "locate libmagick", я просто получаю содержимое /usr/share/doc. Это документы, а не библиотеки.
Мне нужно включить файлы .h в мою программу, чтобы я мог манипулировать изображениями.
В данный момент я делаю тесты для манипуляций с изображениями (простые программы, которые находятся в сайт imagemagick.org, использующий magickwand API)...
Но я не знаю, как это сделать...
Где библиотека?
Это первый шаг :(

Установленные пакеты -dev:
libmagick++-6.q16-dev (API разработчика imagemagick C++)
libmagickcore-6.q16-dev (API Magickcore с низким доступом для C)
libmagickcore-6-headers
libmagickwand-6.q16-dev (API разработчика Magicwand C)
libmagickwand-6-headers
Я также установил пакет libmagickwand-dev, хотя apt говорит, что это переходный пакет, который можно удалить...
Я читал, что этих пакетов будет достаточно, но, похоже, это не так... Спасибо за ответы ;-)


person Sergio Pastor    schedule 15.10.2016    source источник
comment
Вы запускали ./configure; make; sudo make install?   -  person Mark Setchell    schedule 17.10.2016
comment
РЕДАКТИРОВАТЬ: Вчера я установил Debian... Ubuntu мне совсем не понравился :-/ Затем я установил его на Debian. Насколько я знаю, Debian не нужно компилировать. Он устанавливает предварительно скомпилированные пакеты с помощью dpkg, и эти пакеты находятся в репозиториях (коллекция пакетов Debian) :( Я ошибаюсь? Нужен другой конфиг?   -  person Sergio Pastor    schedule 18.10.2016


Ответы (2)


В системе Ubuntu/Debian библиотеки обычно находятся в /usr/lib или в подкаталоге, управляемом установщиком пакета + системной архитектурой.

Вы можете найти их с...

find /usr/lib -name 'libMagick*'

Фактическое местоположение не очень важно, так как вы должны использовать утилиту pkg-config или MagickWand-config для необходимых флагов CC + LD.

Например

pkg-config --cflags --libs MagickWand
#=> -fopenmp -I/usr/include/ImageMagick  -lMagickWand -lMagickCore

or

MagickWand-config --cflags --libs
#=> -fopenmp -I/usr/include/ImageMagick
#   -lMagickWand -lMagickCore

Таким образом, простой тест MagickWand может быть чем-то вроде...

// test.c (creates a single rose.bmp image for testing)
#include <wand/MagickWand.h>

int main()
{
    MagickWandGenesis();
    MagickWand *test = NewMagickWand();
    MagickReadImage(test, "rose:");
    MagickWriteImage(test, "rose.bmp");
    DestroyMagickWand(test);
    MagickWandTerminus();
    return 0;
}

И может быть скомпилирован с..

cc -o make_rose_image $(pkg-config --cflags --libs MagickWand) test.c
person emcconville    schedule 18.10.2016
comment
Я ответил не то ¬¬ то есть спасибо, но все равно не работает.... :( ‹br/› Набрал pkg-config --cflags --libs MagickWand, получил -fopenmp -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -fopenmp -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -I/usr/include/x86_64-linux-gnu//ImageMagick-6 -I/usr/include/ImageMagick-6 -I/usr/include/x86_64-linux-gnu//ImageMagick-6 -I/usr/include/ImageMagick-6 -lMagickWand-6.Q16 -lMagickCore-6.Q16 - person Sergio Pastor; 20.10.2016
comment
Простите меня за этот ужасный код. Не вижу кнопки редактирования... ‹br› Набрал cc -o rose $(pkg-config --cflags --libs MagickWand)$ pruebaimg.c, получил unrecognized command line option [that thing] :-/ - person Sergio Pastor; 20.10.2016
comment
Мой родной язык - испанский... Этот pruebaimg.c - ваш test.c - person Sergio Pastor; 20.10.2016
comment
У вас есть неверный параметр командной строки $ после вызова pkg-config. Но ты на правильном пути. Вы нашли библиотеки и определили правильные флаги для передачи компилятору. Попробуйте gcc -fopenmp -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -I/usr/include/x86_64-linux-gnu/ImageMagick-6 -I/usr/include/ImageMagick-6 -lMagickWand-6.Q16 -lMagickCore-6.Q16 -o rose pruebaimg.c - person emcconville; 20.10.2016
comment
ОНО РАБОТАЕТ!! Благодарю вас! - person Sergio Pastor; 20.10.2016
comment
Теперь мне нужно сделать свое пиксельное изображение :) Могу я попросить вас взглянуть на мой код? Я пытаюсь нарисовать фрактал ;-) Просто линии вызова библиотеки. :D - person Sergio Pastor; 20.10.2016
comment
Рад помочь. Если вы нашли мой ответ полезным, пожалуйста, +1 его. Если на ваши первоначальные вопросы был дан ответ, пожалуйста, примите ответ, чтобы будущие читатели знали. Если у вас есть дополнительные вопросы, пожалуйста, откройте новый вопрос. - person emcconville; 20.10.2016
comment
Спасибо. Я написал кое-что еще, чтобы объяснить то, что вы мне сказали :) - person Sergio Pastor; 20.10.2016

Что мне нужно было сделать, так это установить библиотеки libmagick-dev. Они были в /usr/lib.
При вводе find /usr/lib -name 'libMagick*' получалось

/usr/lib/x86_64-linux-gnu/libMagick++-6.Q16.a
/usr/lib/x86_64-linux-gnu/libMagick++-6.Q16.so
/usr/lib/x86_64-linux-gnu/libMagickCore-6.Q16.so.2.0.0
/usr/lib/x86_64-linux-gnu/libMagickWand-6.Q16.so
/usr/lib/x86_64-linux-gnu/libMagickWand-6.Q16.a
/usr/lib/x86_64-linux-gnu/libMagick++-6.Q16.la
/usr/lib/x86_64-linux-gnu/libMagick++-6.Q16.so.5.0.0
/usr/lib/x86_64-linux-gnu/libMagickCore-6.Q16.so
/usr/lib/x86_64-linux-gnu/libMagick++-6.Q16.so.5
/usr/lib/x86_64-linux-gnu/libMagickWand-6.Q16.so.2
/usr/lib/x86_64-linux-gnu/libMagickWand-6.Q16.so.2.0.0
/usr/lib/x86_64-linux-gnu/libMagickCore-6.Q16.so.2
/usr/lib/x86_64-linux-gnu/libMagickCore-6.Q16.a
/usr/lib/x86_64-linux-gnu/libMagickCore-6.Q16.la
/usr/lib/x86_64-linux-gnu/libMagickWand-6.Q16.la

И вот они!
Библиотеки находятся в /usr/lib
А программа, использующая MagickWand, вызывается
cc -o output $(pkg-config --cflags --libs MagickWand) source.c

:)

person Sergio Pastor    schedule 19.10.2016