VIPS library Qt

312
18 февраля 2017, 06:21

Пытаюсь собрать проект с VIPS Lib. Подключил следующие .lib.

win32: LIBS += -L$$PWD/../../../../vips-dev-8.4/lib/ -llibvips
INCLUDEPATH += $$PWD/../../../../vips-dev-8.4/include
DEPENDPATH += $$PWD/../../../../vips-dev-8.4/include
win32: LIBS += -L$$PWD/../../../../vips-dev-8.4/lib/ -llibglib-2.0
INCLUDEPATH += $$PWD/../../../../vips-dev-8.4/include/glib-2.0
DEPENDPATH += $$PWD/../../../../vips-dev-8.4/include/glib-2.0
win32: LIBS += -L$$PWD/../../../../vips-dev-8.4/lib/ -llibvips-cpp
INCLUDEPATH += $$PWD/../../../../vips-dev-8.4/include
DEPENDPATH += $$PWD/../../../../vips-dev-8.4/include
win32: LIBS += -L$$PWD/../../../../vips-dev-8.4/lib/ -llibvipsCC
INCLUDEPATH += $$PWD/../../../../vips-dev-8.4/include
DEPENDPATH += $$PWD/../../../../vips-dev-8.4/include

Пытаюсь скомпилить примеры с оффициального сайта (здесь С++ код, но я пробовал и С пример):

#include <QCoreApplication>
#include <vips/vips.h>
#include <vips/vips8>
using namespace vips;
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
      GOptionContext *context;
      GOptionGroup *main_group;
      GError *error = NULL;
      if( VIPS_INIT( argv[0] ) )
        vips_error_exit( NULL );
      context = g_option_context_new( "" );
      main_group = g_option_group_new( NULL, NULL, NULL, NULL, NULL );
      g_option_context_set_main_group( context, main_group );
      g_option_context_add_group( context, vips_get_option_group() );
      if( !g_option_context_parse( context, &argc, &argv, &error ) ) {
        if( error ) {
          fprintf( stderr, "%s\n", error->message );
          g_error_free( error );
        }
        vips_error_exit( NULL );
      }
      VImage in = VImage::new_from_file( argv[1],
        VImage::option()->
          set( "access", VIPS_ACCESS_SEQUENTIAL_UNBUFFERED ) );
      double avg = in.avg();
      printf( "avg = %g\n", avg );
      printf( "width = %d\n", in.width() );

      VImage out = in.embed( 10, 10, 1000, 1000,
        VImage::option()->
          set( "extend", "background" )->
          set( "background", 128 ) );
      out.write_to_file( argv[2] );
      vips_shutdown();
    return a.exec();
}

Выдает следующие ошибки:

Судя по всему не подцепились какие-то dll. Может быть я забыл подсоединить еще какие-то .lib к проекту? Компилятор: mingw32, ОС:win7 32

UPD: Сделал точь-в-точь как написано в примере на оффициальном сайте:

    win32: LIBS += -L$$PWD/../../../../vips-dev-8.4/lib \
        -lvipsCC -lvips-cpp -lvips -lgsf-1 -lz -ljpeg -lxml2 -lfftw3 -lm \
        -lMagickWand-6.Q16 -llcms2 \
        -lopenslide  -lpangowin32-1.0 -ltiff -lpng16 -lexif \
        -lMagickCore-6.Q16 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 \
        -lgmodule-2.0 -lgthread-2.0 -lglib-2.0 -lintl \

INCLUDEPATH += $$PWD/../../../../vips-dev-8.4/include
INCLUDEPATH += $$PWD/../../../../vips-dev-8.4/include/glib-2.0
INCLUDEPATH += $$PWD/../../../../vips-dev-8.4/include/glib-2.0/include

Однако, ошибка не пропадает...

Answer 1

Не подцепились не dll, а lib-файлы. Исключите "lib" из директивы:

win32: LIBS += -L$$PWD/../../../../vips-dev-8.4/lib/ -lvips

В директивах, подключающих lib-файлы, в названии которых содержится версия, возможно, версию тоже понадобится отбросить.

p.s. Добавление каталога заголовочных файлов в переменную DEPENDPATH избыточно. Эта переменная считается устаревшей.

READ ALSO
Обработка изображения с помощью OpenCV

Обработка изображения с помощью OpenCV

Стоит задача распознавания капчи с некоторого ресурса

388
MPI -обновление флага

MPI -обновление флага

Изучаю MPI, появился вопрос:

320
sort не работает с std::bind

sort не работает с std::bind

Почему код не работает, если вместо 3 вставить число меньше 6И как это можно исправить? Код должен сортировать вектор с помощью функтора std::greater,...

351
В каких случаях возникает потребность использования raw pointers в современном C++?

В каких случаях возникает потребность использования raw pointers в современном C++?

После появления новых возможностей в C++ таких как std::make_shared() и std::make_unique то возникает вопрос : А есть ли хоть один случай, когда действительно...

316