Skocz do zawartości

Witaj!

Zaloguj lub Zarejestruj się aby uzyskać pełny dostęp do forum.

Zdjęcie
- - - - -

Problem z kompilacją qwt (QT4.3)


  • Zaloguj się, aby dodać odpowiedź
6 odpowiedzi w tym temacie

#1 pgolik

pgolik
  • 125 postów
  • SkądWarszawa

Napisano 20 września 2007 - 19:31

Witam,
Niedawno przesiadłem się na Maca (z Linuxa, którego używalem ponad 6 lat) i na razie wszystko jest super, ale mam jeden problem i chyba to forum jest właściwe. Potrzebuję programu QtiPlot - mam sporo danych w jego formacie, poza tym robi to, czego potrzebuję i jest na GPL. Z tym, że za binarki autor każe sobie płacić (i to niemało), za darmo można sobie skompilować ze żródeł. Pod linuxem nie miałem z tym problemów, ale na Macu (Tiger 10.4.10) się zatkałem.
Postępuje według instrukcji ze strony programu. Jedną z zależności jest biblioteka Qwt. Trzeba ją skompilować ze źródła, co prawda jest w fink (unstable) ale tam ściąga i kompiluje się dla qt3, a QtiPlot musi być z qt4. Zainstalowałem więc qt od Trolltecha (wersję open source 4.3.1), odpaliłem qmake, zrobił Makefile, ale make wywala się pisząc:
c++ -c -pipe -g -Wall -W -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/Trolltech/Qt-4.3.1/mkspecs/macx-g++ -I. -I/usr/local/Trolltech/Qt-4.3.1/lib/QtCore.framework/Versions/4/Headers -I/usr/local/Trolltech/Qt-4.3.1/include/QtCore -I/usr/local/Trolltech/Qt-4.3.1/include/QtCore -I/usr/local/Trolltech/Qt-4.3.1/lib/QtGui.framework/Versions/4/Headers -I/usr/local/Trolltech/Qt-4.3.1/include/QtGui -I/usr/local/Trolltech/Qt-4.3.1/include/QtGui -I/usr/local/Trolltech/Qt-4.3.1/include -I. -Idesigner -Isrc -Iexamples/bode -Iexamples/cpuplot -Iexamples/curvdemo2 -Iexamples/data_plot -Iexamples/dials -Iexamples/event_filter -Iexamples/histogram -Iexamples/radio -Iexamples/realtime_plot -Iexamples/sliders -Itextengines/mathml -I. -I. -F/usr/local/Trolltech/Qt-4.3.1/lib -o qwt_designer_plugin.o designer/qwt_designer_plugin.cpp
designer/qwt_designer_plugin.cpp:17:40: error: QDesignerFormEditorInterface: No such file or directory
designer/qwt_designer_plugin.cpp:18:40: error: QDesignerFormWindowInterface: No such file or directory
designer/qwt_designer_plugin.cpp:19:46: error: QDesignerFormWindowCursorInterface: No such file or directory
designer/qwt_designer_plugin.cpp:20:29: error: QExtensionManager: No such file or directory
In file included from designer/qwt_designer_plugin.cpp:23:
designer/qwt_designer_plugin.h:23:42: error: QDesignerCustomWidgetInterface: No such file or directory
designer/qwt_designer_plugin.h:24:38: error: QDesignerTaskMenuExtension: No such file or directory
designer/qwt_designer_plugin.h:25:29: error: QExtensionFactory: No such file or directory
designer/qwt_designer_plugin.h:32: error: expected class-name before '{' token
designer/qwt_designer_plugin.h:49: error: 'QDesignerFormEditorInterface' has not been declared
designer/qwt_designer_plugin.h:66: error: expected class-name before '{' token
designer/qwt_designer_plugin.h:73: error: 'QDesignerCustomWidgetInterface' was not declared in this scope
designer/qwt_designer_plugin.h:73: error: template argument 1 is invalid
designer/qwt_designer_plugin.h:76: error: 'QDesignerCustomWidgetInterface' was not declared in this scope
designer/qwt_designer_plugin.h:76: error: template argument 1 is invalid
designer/qwt_designer_plugin.h:210: error: expected class-name before '{' token
designer/qwt_designer_plugin.h:214: error: expected `)' before '*' token
designer/qwt_designer_plugin.h:210: warning: 'class QwtDesignerPlugin::TaskMenuFactory' has virtual functions but non-virtual destructor
designer/qwt_designer_plugin.h:223: error: expected class-name before '{' token
designer/qwt_designer_plugin.cpp:102: error: variable or field 'initialize' declared void
designer/qwt_designer_plugin.cpp:102: error: 'int QwtDesignerPlugin::CustomWidgetInterface::initialize' is not a static member of 'class QwtDesignerPlugin::CustomWidgetInterface'
designer/qwt_designer_plugin.cpp:102: error: 'QDesignerFormEditorInterface' was not declared in this scope
designer/qwt_designer_plugin.cpp:102: error: 'formEditor' was not declared in this scope
designer/qwt_designer_plugin.cpp:103: error: expected ',' or ';' before '{' token
designer/qwt_designer_plugin.cpp: In constructor 'QwtDesignerPlugin::CustomWidgetCollectionInterface::CustomWidgetCollectionInterface(QObject*)':
designer/qwt_designer_plugin.cpp:413: error: request for member 'append' in '((QwtDesignerPlugin::CustomWidgetCollectionInterface*)this)->QwtDesignerPlugin::CustomWidgetCollectionInterface::d_plugins', which is of non-class type 'int'
designer/qwt_designer_plugin.cpp:414: error: request for member 'append' in '((QwtDesignerPlugin::CustomWidgetCollectionInterface*)this)->QwtDesignerPlugin::CustomWidgetCollectionInterface::d_plugins', which is of non-class type 'int'
designer/qwt_designer_plugin.cpp:418: error: request for member 'append' in '((QwtDesignerPlugin::CustomWidgetCollectionInterface*)this)->QwtDesignerPlugin::CustomWidgetCollectionInterface::d_plugins', which is of non-class type 'int'
designer/qwt_designer_plugin.cpp:419: error: request for member 'append' in '((QwtDesignerPlugin::CustomWidgetCollectionInterface*)this)->QwtDesignerPlugin::CustomWidgetCollectionInterface::d_plugins', which is of non-class type 'int'
designer/qwt_designer_plugin.cpp:420: error: request for member 'append' in '((QwtDesignerPlugin::CustomWidgetCollectionInterface*)this)->QwtDesignerPlugin::CustomWidgetCollectionInterface::d_plugins', which is of non-class type 'int'
designer/qwt_designer_plugin.cpp:421: error: request for member 'append' in '((QwtDesignerPlugin::CustomWidgetCollectionInterface*)this)->QwtDesignerPlugin::CustomWidgetCollectionInterface::d_plugins', which is of non-class type 'int'
designer/qwt_designer_plugin.cpp:422: error: request for member 'append' in '((QwtDesignerPlugin::CustomWidgetCollectionInterface*)this)->QwtDesignerPlugin::CustomWidgetCollectionInterface::d_plugins', which is of non-class type 'int'
designer/qwt_designer_plugin.cpp:423: error: request for member 'append' in '((QwtDesignerPlugin::CustomWidgetCollectionInterface*)this)->QwtDesignerPlugin::CustomWidgetCollectionInterface::d_plugins', which is of non-class type 'int'
designer/qwt_designer_plugin.cpp:424: error: request for member 'append' in '((QwtDesignerPlugin::CustomWidgetCollectionInterface*)this)->QwtDesignerPlugin::CustomWidgetCollectionInterface::d_plugins', which is of non-class type 'int'
designer/qwt_designer_plugin.cpp:425: error: request for member 'append' in '((QwtDesignerPlugin::CustomWidgetCollectionInterface*)this)->QwtDesignerPlugin::CustomWidgetCollectionInterface::d_plugins', which is of non-class type 'int'
designer/qwt_designer_plugin.cpp:428: error: request for member 'append' in '((QwtDesignerPlugin::CustomWidgetCollectionInterface*)this)->QwtDesignerPlugin::CustomWidgetCollectionInterface::d_plugins', which is of non-class type 'int'
designer/qwt_designer_plugin.cpp: At global scope:
designer/qwt_designer_plugin.cpp:431: error: 'QDesignerCustomWidgetInterface' was not declared in this scope
designer/qwt_designer_plugin.cpp:431: error: template argument 1 is invalid
designer/qwt_designer_plugin.cpp:437: error: expected `)' before '*' token
designer/qwt_designer_plugin.cpp: In member function 'QObject* QwtDesignerPlugin::TaskMenuFactory::createExtension(QObject*, const QString&, QObject*) const':
designer/qwt_designer_plugin.cpp:445: error: 'QDesignerTaskMenuExtension' was not declared in this scope
designer/qwt_designer_plugin.cpp:445: error: 'Q_TYPEID' was not declared in this scope
designer/qwt_designer_plugin.cpp:457: error: 'QExtensionFactory' has not been declared
designer/qwt_designer_plugin.cpp: In member function 'void QwtDesignerPlugin::TaskMenuExtension::applyProperties(const QString&)':
designer/qwt_designer_plugin.cpp:509: error: 'QDesignerFormWindowInterface' was not declared in this scope
designer/qwt_designer_plugin.cpp:509: error: 'formWindow' was not declared in this scope
designer/qwt_designer_plugin.cpp:510: error: 'QDesignerFormWindowInterface' is not a class or namespace
designer/qwt_designer_plugin.cpp:510: error: 'findFormWindow' was not declared in this scope
make: *** [qwt_designer_plugin.o] Error 1
Wygląda to, jakby nie znajdował jakichś nagłówków, ale ścieżki w komendzie c++ (i INCPATH w makefile) wyglądają OK (QT jest w /usr/local/Trolltech/Qt-4.3.1/).
Powyższe jest z QT kompilowanym ze żródeł, ale jak spróbowałem z binarną paczką z Trolltecha to były identyczne błędy (tylko ścieżki inne, bo wtedy QT idzie do /developer/tools).
Ktoś ma jakiś pomysł, jak poprawić - ja sam nie jestem programistą, potrzebuję tego programu, a pod gentoo kompilacje mi po prostu chodziły, bez takich jazd.

#2 bazyl

bazyl
  • 80 postów
  • SkądWrocław

Napisano 21 września 2007 - 13:33

No wiec odradzam finka. To nie ta biblioteka. Ze stron Trolltechu trzeba sciagnac zrodla i wpakowac je do teczki Frameworks (ktorej tam chcesz, czy lokalnej czy globalnej). Podczas kompilacji trzeba rowniez zaznaczyc z jakich sciezek sie korzysta. Powiem wiecej - jesli masz finkwego qt zainstalowane, to masz duze szanse, ze qmake jest z finkowego defaultowo odpalany, a nie z oryginalnego Trolltechowego. Odinstaluj go. Jak nadal bedziesz mial problem, daj znac mi na prv ;] Moze jakos damy rade ;] Pozdrawiam.

#3 pgolik

pgolik
  • 125 postów
  • SkądWarszawa

Napisano 21 września 2007 - 15:11

No więc właśnie nie instalowałem tu nic od finka. Qt jest bezpośrednio od Trolltecha, skompilowane ze źródeł z domyślnymi parametrami: jako framework z prefixem /usr/local/Trolltech/Qt-4.3.1 Próbowałem też wcześniej z binarną paczką z Qt z Trolltech, i było dokładnie to samo, z dokładnością do innego prefixu. Według dokumentacji to powinno pójść z automatu: qmake robi makefile a make robi resztę. Na oko to qmake znalazł moją instalację Qt, ale nie jestem w stanie dojść, czego mu jeszcze brakuje.

#4 M4R

M4R
  • 149 postów
  • SkądKielce

Napisano 01 października 2007 - 07:59

Wygląda na to że brakuje qt designera, też kiedyś używałem linuxa, miałem qt na mac os x ale według mnie nie ma to sensu. Poszukaj odpowiednika tego programu Qtpilot natywnie napisanego na mac os x napewno coś znajdziesz, na maki jest mnóstwo oprogramowania.

#5 pgolik

pgolik
  • 125 postów
  • SkądWarszawa

Napisano 01 października 2007 - 08:19

Trochę dziwne, wydawało mi się, że w paczce od Trolltecha będzie wszystko, łącznie z designerem. Ale w końcu sobie poradziłem - znalazłem w finku unstable starszą wersję qtiplot, jeszcze na qt3 i ładnie się zainstalowała, interfejs nie wygląda najgorzej (jest wersjaq qtiplot-aqua z systemowymi okienkami do plików itp.) i działa jak trzeba.
Co do rady, żeby szukać alternatywy - po pierwsze, mam sporo danych i analiz w formacie qtiplot (w plikach są nie tylko surowe dane, ale też i sformatowane wykresy, dopasowane krzywe itp.) i robienie tego od nowa w innym sofcie byłoby gigantyczną stratą czasu. Po drugie, szukałem długo frewarowego (i nie tylko) softu natywnego o podobnych możliwościach (qtiplot to całkiem niezły klon windowsowego Origin) , znalazłem tylko Plot, który ma mniej możliwości i jest (IMHO) wyjątkowo nieintuicyjny. Po trzecie, w sofcie do analizy danych Ope Source to dobra rzecz - dokładnie wiadomo, jakie algorytmy są zastosowane. Co nie zmienia faktu,że jakby był Origin na Maka, to bym kupił (jest komercyjny Igor, ale to nie to samo, już Qtiplot lepszy).

#6 naresh

naresh
  • 2 079 postów
  • SkądWarszawa

Napisano 03 października 2007 - 19:27

Wyglada na to ze program uzywajacy Qt3 probujesz kompilowac z Qt4. Tu chyba lezy twoj najwiekszy problem.

#7 pgolik

pgolik
  • 125 postów
  • SkądWarszawa

Napisano 04 października 2007 - 08:21

To inna wersja - kompilować próbowałem qtiplot 0.9, który według strony autora jest tylko na qt4, z qt3 (z finka) jest starsza wersja - 0.8.9, która była ostatnią pod qt3. Na szczęście 0.8.9 czyta moje dane bez problemu.




Użytkownicy przeglądający ten temat: 1

0 użytkowników, 1 gości, 0 anonimowych