qt i biblioteka Magick++

1

Czy ktoś z was wie jak poprawnie dołączać biblioteki do projektu tworzonego w QT Creator? Skopiowałem folder z plikami biblioteki do folderu projektu, zmodyfikowałem plik .pro poprzez dodanie linijek, które powinny dołączyć biblioteke podczas linkowania ale w momencie kiedy obojętnie jaki plik nagłówkowy biblioteki chcę włączyć przez komende #include w swoim projekcie, kompilator wywala błąd, że nie może odnaleźć ścieżki do tego pliku, mimo że on tam jest. Chce dolączyć bibliotekę Magick++ do swojego projektu by móc przetwarzać za jej pomocą obrazy. Ścieżka do samego folderu z plikami biblioteki też nie działa w #include bo wywala mase błędów. Byćmoże trzeba ją wcześniej skompilować, lub coś z nią zrobić, ale jeśli tak to jak powinienem to zrobić?

0

Linkujesz libkę, czy tylko podajesz include path? Pokaż zawartość pliku *.pro.

0

Oto linijki jakie dodałem:

INCLUDEPATH += ./Magick++/lib \
    ./Magick++/include \
    ./Magick++

LIBS += ./Magick++/lib/CORE_RL_magick_.lib \
    ./Magick++/lib/CORE_RL_Magick++_.lib 

A to pozostała zawartość:

#-------------------------------------------------
#
# Project created by QtCreator 2013-08-01T14:57:48
#
#-------------------------------------------------

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = teethapp
TEMPLATE = app


SOURCES += main.cpp\
        mainwindow.cpp \
    aboutwindow.cpp \
    summarywindow.cpp \
    documentationwindow.cpp

HEADERS  += mainwindow.h \
    aboutwindow.h \
    summarywindow.h \
    documentationwindow.h

FORMS    += mainwindow.ui \
    aboutwindow.ui \
    summarywindow.ui \
    documentationwindow.ui 
0

Nie sądzę, aby była potrzeba dodawania libs do INCLUDEPATH.
A może te +y w ścieżce przeszkadzają?

0

No właśnie też tak myślałem że + mogą tworzyć błędy ale nic z tego :/ Usunąłem je z nazwy, skasowałem podawanie ściezki do katalogu libs w INCLUDEPATH i dalej to samo. Jakieś inne pomysły?

0

Wyrzuć to INCLUDEPATH, a jeśli Magick++ masz rzeczywiście w katalogu projektu, użyj cudzysłowu:

#include "Magick++/include/cośtam.h"
0

Też już tak próbowałem i nic :/

No such file or directory

0

Wywaliłem wszystko co dodałem wcześniej do pliku .pro w swoim projekcie, zmieniłem <> na "" w #include i QT jakby uwidziało w końcu ten plik, tyle że teraz biblioteka się burzy o ścieżki do swoich wewnętrznych plików, które są porozrzucane po różnych podfolderach i nie wydaje mi się abym je musiał wszędzie poprawiać względem umiejscowienia całego folderu z biblioteką wewnątrz swojego projektu.

Czy wobec tego ktoś ma jakieś doświadczenia z biblioteką ImageMagick i używaniem jej w QT Creatorze w projekcie okienkowym w C++? Póki co mi się już pomysły skończyły a biblioteka ta zawiera wszystkie "rzeczy" które mi są potrzebne w moim projekcie tzn. przy porównywaniu dwóch obrazów :/

Chyba że znacie jakieś inne biblioteki, które mają podobne możliwości i wiecie jak z nich korzystać w QT? Niestety VS nie wchodzi w gre (narzucone środowisko i język programowania), a pisanie własnego algorytmu rozpoznawania i porównywania obrazów jakoś mi się nie uśmiecha i nie mam na to czasu, tym bardziej że samo QT i jego tak zaawansowana obsługa (projektowanie wyglądu, obsługa widgetów, sloty, uzywanie zewnętrznych bibliotek) w celu tworzenia aplikacji jest dla mnie czymś zupełnie nowym :|

0

Wklej przykładowy kod, komunikat błędu oraz na jakim systemie programujesz.

0

#include "ImageMagick/Magick++/lib/Magick++/Include.h"

^^ linijka. która ma dołączać do projektu bibliotekę ImageMagick, a dokładnie jej składnik Magick++ (odpowiednik dla visual c++), umieszczona w głównym pliku projektu.

c:\qt\teethapp\teethapp\ImageMagick\Magick++\lib\Magick++\Include.h błąd Nie moľna otworzy† pliku doĄcz: 'magick/magick-config.h': No such file or directory

^^ treść komunikatu/błędu

Projekt/ImageMagick/magick/

^^ ściezka do pliku który jest wspomiany w błędzie, trzeba zobaczyć że różni się ona od ścieżki pliku nagłówkowego biblioteki podawanego przez #include

#if !defined(_MAGICK_CONFIG_H)
# define _MAGICK_CONFIG_H
# if !defined(vms) && !defined(macintosh)
#  include "magick/magick-config.h"
# else
#  include "magick-config.h"
# endif
# undef inline // Remove possible definition from config.h
# undef class
#endif

^^ fragment kodu w pliku Include.h który dołącza plik konfiguracyjny i wywala to błąd - dokładnie błąd jest przy pierwszym #include w tym if-ie

programuje na platformie Windows'owej (Windows 7 Pro x64)

1

Ściągnąłem zip'a ze strony projektu i patrzę na Twoje ścieżki i na mój gust ściągnąłeś ImageMagic i go nie skompilowałeś. Najpierw musisz skompilować bibliotekę, później dopiero możesz z niej korzystać. Jak skompilujesz to zapewne nagłówki będziesz miał w innej lokalizacji niż folder lib. Zapoznaj się z plikiem INSTALL.

Inną kwestią są ścieżki, jakie widać w pliku .pro - jeśli chcesz tak zrobić w przyszłości to pamiętaj że zapis "./coś/tam/cos.h" będzie oznaczał, że katalog coś masz na poziomie pliku projektu. Według mnie biblioteki lepiej trzymać gdzieś poza projektem - w końcu można taką bibliotekę do wielu aplikacji wykorzystywać, a w pliku .pro podaje się pełna ścieżkę do nagłówków i libów.

0

Ściągnąłem ponownie zip-a ze strony oficjalnej i okazało się że wcześniej miałem jakąś okrojoną wersje tej biblioteki gdzie połowy tych plików nie było. Zgodnie z instrukcją uruchomiłem konfiguracje (ustawienie wielowątkowe, bez DLL, dla architektury 32 bitowej, z obsługą VisualStudio 7) oraz wygenerowałem plik projektu dla VisualStudio. Następnie wyczyściłem wszystkie 62 podprojekty ale już zbudowanie ich nie zakończyło się sukcesem. W konfiguracji ustawiłem architekturę Win32 dla wszystkich 62 projektów, a korzystam z systemu Windows 7 Pro x64 i VisualStudio 2012 Ultimate. Po wykonaniu tych czynności wyskoczyło mi 40 błędów kompilacji i ponad 700 ostrzeżeń. Czy może coś zrobiłem źle, jak skonfigurować bibliotekę przed generowaniem pliku projektu do kompilacji w VS żebym mógł jej używac w Qt?

0

Po wykonaniu tych czynności wyskoczyło mi 40 błędów kompilacji i ponad 700 ostrzeżeń
. . . . . . .
.

0

Dlatego o tym napisałem, że posługując się oficjalnym manualem, takie rzeczy chyba nie powinny się dziać, a sam nie mam juz pomysłu co gdzie i jak ustawić aby było ok, bo to w zasadzie pierwsza biblioteka którą kompiluje i jestem w tym względzie zielony. Trochę wyrozumiałości... :)

0

Już się poprawiam. Z racji że treść wszystkich błędów i ostrzeżeń jest za długa do umieszczenia jej w poście znajduje się ona w linku poniżej:

https://dl.dropboxusercontent.com/u/74090376/app_error.txt

i jeszcze raz bardzo proszę o jakiekolwiek rady co z tym zrobić.

0

Pewnie macie mnie tutaj już dość, ale ja w dalszym ciągu nie znalazłem rozwiązania tego problemu, problemu, który uniemożliwia mi dalszą prace nad projektem :( Czy ktoś z was kiedykolwiek dołączał jakąś bibliotekę tak aby używać jej w Qt, uprzednio ją kompilując i może pomóc??? Zainstalowałem tą bibliotekę w systemie używając pliku .exe z oficjalnej strony www ImageMagick z nadzieją że jeśli w linii komend będzie to działać to Qt też w końcu zobaczy bibliotekę i pozwoli z niej korzystać ale ...lipa :/ Nic się w Qt nie zmieniło, a przy kompilacji w dalszym ciągu dziesiątki błędów, kompletnie dla mnie niezrozumiałych błędów :(

1 użytkowników online, w tym zalogowanych: 0, gości: 1