QT VTK ITK installieren

Wanderfalke

Wanderfalke

Aktives Mitglied
Thread Starter
Dabei seit
28.12.2007
Beiträge
616
Reaktionspunkte
5
Hey,
ich hoffe, es gibt hier jemanden, der mir helfen kann :)

Ich versuche gerade QT, VTK und ITK auf meinem System aufzusetzen - allerdings schlägt das kompilieren bei verschiedenen Sachen fehl und ich weiß nicht, wie ich die Probleme lösen kann.

Habt ihr vielleicht ein gutes Tutorial, das einen durch die einzelnen Schritte führt, wenn man alle drei (QT, ITK, VTK) aufsetzen will?


Vielen Dank schonmal!!
 
Dann will ich mal ein bisschen nachlegen :)
Vielen Dank für Deine Antwort!!

Ich habe gerade versucht nach der Anleitung qt zu kompilieren. Dabei gibt er mir nach dem make-Befehl (nachdem er lange gearbeitet hat) folgende Fehlermeldung aus:
Undefined symbols for architecture x86_64:
"Phonon::ObjectDescriptionModel<(Phonon::ObjectDescriptionType)0>::qt_metacast(char const*)", referenced from:
vtable for Phonon::ObjectDescriptionModel<(Phonon::ObjectDescriptionType)0> in window.o
"Phonon::ObjectDescriptionModel<(Phonon::ObjectDescriptionType)0>::metaObject() const", referenced from:
vtable for Phonon::ObjectDescriptionModel<(Phonon::ObjectDescriptionType)0> in window.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [capabilities.app/Contents/MacOS/capabilities] Error 1
make[2]: *** [sub-capabilities-make_default-ordered] Error 2
make[1]: *** [sub-phonon-make_default] Error 2
make: *** [sub-examples-make_default-ordered] Error 2

Wie kann ich das reparieren?
 
Dann will ich mal ein bisschen nachlegen :)
Wirkliche Informationen hast du nicht gepostet. ;)

Was für eine OSX-Version (vermute Mavericks)? Aktuelle Xcode Version? Hast du evtl. schon Sachen compiliert so dass irgendwelche Libraries im System rumfliegen?

Ich habe gerade versucht nach der Anleitung qt zu kompilieren. Dabei gibt er mir nach dem make-Befehl (nachdem er lange gearbeitet hat) folgende Fehlermeldung aus:

Wie kann ich das reparieren?
Ein ähnlicher Fehler hat mich bei ffmpeg einiges an Zeit gekostet, da er eben unterschiedliche Ursachen haben kann. Da fehlen beim Linken einfach ein paar libs. So weit ich gegoogled habe, würde ich vermuten dass du mit --enable-shared und --disable-static (o.ä.) das Problem erst einmal lösen könntest.

Abhängig von deiner Leidensfähigkeit bzw. Bereitschaft (viel) Zeit zu investieren würde ich dir eher empfehlen die Sachen via Brew zu installieren. Hatte schon bei brew nach itk gesucht aber nicht gefunden. Kaito dagegen hat es gefunden und ich denke das wäre der einfachste Weg.
 
Vielen Dank für eure Antwort!!

mir ist aber noch nicht ganz klar, was ich genau mit homebrew tun soll.

Installiere ich damit einfach alle "formulas" und damit sind dann ITK/VTK/QT installiert?
Diesem Link zufolge (http://braumeister.org/repos/Homebrew/homebrew-science/formula/vtk) müsste ich hier also die formulas (hft5, boost, cmake, jpeg, libtiff, qt) installieren, um die formula vtk aufrufen zu können?

Ist das dann alles, was notwendig ist, um die drei Sachen zu installieren?


*edit:
Ja, Mavericks 10.9.3
Aktuelle XCode Version

Und ich hatte versucht ITK / VTK / QT zu compilieren. brew doctor warnt entsprechend auch vor "unexpected dylibs, unexpected .la files, unexpected .pf files" ...
 
Hast du noch nie mit Paketmanagern gearbeitet?
Ein "brew install qt" kompiliert dir nicht nur Qt, sondern auch alle notwendigen Abhängigkeiten.
Hier ist simpel erklärt, wie das funktioniert: http://brew.sh/
Genauere Informationen gibt es auf dem unten verlinkten Wiki auf dieser Seite.

Du musst zur Nutzung weder die Formulas selbst lesen/kennen, noch irgendeine Seite wie braumeister.org konsultieren. Einfach an die offizielle Dokumentation halten und "man brew".

Bezüglich des Doktors: du hast höchstwahrscheinlich schon selbst eigene Dinge in /usr/local gehauen, davor warnt brew doctor. Das ist nicht zwingend schlimm, kann aber beim Kompilierprozess andere Dinge (negativ) beeinträchtigen. Sollte jemals ein Fehler passieren, musst du dich halt selbst darum kümmern und wissen, was du alles in /usr/local getan hast, um die Interferenz rauszudröseln.

Ist das dann alles, was notwendig ist, um die drei Sachen zu installieren?
Wenn du die notwendigen Abhängigkeiten der Projekte nicht installiert hattest, als du sie kompilieren wolltest, musst du dich natürlich nicht wundern, wenn das schief geht.
 
ich hab das grad probiert und das scheint super zu funktionieren... - Danke für die Hilfe!!

warum wird denn das nicht als standardvariante zur Installation von ITK,VTK,QT in den Tutorials angegeben?
Das scheint doch sehr viel leichter umzusetzen zu sein... :eek:
 
hey,
ein Problem krieg ich grad noch.

Ich versuche mir grad ein Beispielprogramm anzusehen.
Beim make-Befehl gibt er mir folgende Fehlermeldung aus:

fatal error: 'QVTKWidget.h' file not found #include "QVTKWidget.h"

da scheint eine .h-Datei zu fehlen. Wie kann ich die noch nachinstallieren?

Bisher war mein Vorgehen zum installieren:
brew install qt
brew tap homebrew/science
brew install vtk
brew install insighttoolkit
 
Die fehlt nicht, du musst dem Makefile nur sagen, wo er sie finden kann.
 
hmm - wie kann ich das dem denn sagen?

Wenn ich das mit cmake konfigurieren lasse, fehlen scheinbar auch 'ne Menge mehr Dateien (s. Anhang)

Bildschirmfoto 2014-07-01 um 11.25.29.jpg
 
Dann schau doch einfach nach wie du wo die Suchpfade von cmake anpassen musst. :)
 
Aber woher weiß ich denn, wo die Dateien liegen? Die anderen Dateien findet er ja scheinbar auch selbsständig.

Die Dateien müssten ja wahrscheinlich irgendwo im Verzeichnis /usr/local/Cellar liegen...?
Und wie genau kann ich dem make-Befehl sagen, wo es die Dateien suchen soll?


(sry, wenn ich etwas auf dem Schlauch stehe!)
 
Mitteilen kann man es meistens über Umgebungsvariablen oder mittels -/configure-Optionen. Wobei ich mich frage ob es für dich nicht leichter wäre Linux in einer VM laufen zu lassen und dort dann die Pakete zu installieren. Will man manche Dinge selber installieren, bedeutet das nicht selten einen erheblichen Aufwand.
 
du meinst, wenn man es wieter auf einem Mac OS laufen lassen würde?
warum sollte das auf einem linux system einfacher sein?
 
du meinst, wenn man es wieter auf einem Mac OS laufen lassen würde?
Nun ja, es läuft ja (noch) nicht. Oder?
warum sollte das auf einem linux system einfacher sein?
Manche Linux-Distributionen haben sehr umfangreiche, aktuelle Pakete die man eben leicht installieren kann. Ob es bei den von dir gewünschten auch der Fall ist, kann ich natürlich nicht sagen.

Wenn ich den Screenshot anschaue, fehlen da manche Pakete und auch die debug-Pakete. Wie wichtig das alles ist und wie du die installieren kannst, kann ich dir nicht sagen. Ich würde auch vermuten dass es da sehr wenige Leute gibt die sowas auf dem Mac machen und was noch bedauernswerter ist, dass es kaum einen Informationsaustausch gibt. Daher sehe ich 3 Möglichkeiten:

- Du compilierst selber was aber sehr aufwändig und nicht zwangsläufig von Erfolg gekrönt ist. Apple ändert immer wieder was, so dass man dort permanent am nachbessern ist - beide Anleitungen die ich hier gepostet habe (mkvtoolnix, ffmpeg) muss ich demnächst mal ändern, was aber zeitaufwändig ist. Irgendwann hat man dann hoffentlich ein brauchbares Shell-Script mit dem man dann einiges automatisch machen kann, aber auch hier sind dann manche Änderungen (sei es in Xcode oder Dependecies) die einen einiges an Zeit kosten.

- Du nutzt z.B. Brew (oder MacPorts), solltest dich aber dann einarbeiten und schauen wie du Anpassungen vornehmen kannst.

- Du lässt eine Linux-Distribution die deine Pakete hat, in einer VM laufen.
 
Will man manche Dinge selber installieren, bedeutet das nicht selten einen erheblichen Aufwand.
Er will aber (so scheint es mir) ein eigenes Programm/wasauchimmer bauen und weiß blos nicht wie er die Dependencies in das Buildsystem bringt. Die Dependencies hat er (theoretisch) ja. Das wäre auf einer Linux Distribution nun auch nicht anders.

'Selberbauen' hat einen großen Vorteil: man weiß was man gemacht hat und wo es ist (hoffentlich).
Wenn man aber nicht weiß, was man braucht und wo man dies angibt, ist es sich gleich. :s

Aber woher weiß ich denn, wo die Dateien liegen? Die anderen Dateien findet er ja scheinbar auch selbsständig.
Woher weißt du, dass du sie hast? Mal "brew info qt" aufgerufen? Dann wirst du vermutlich feststellen, weshalb z.B. dbus nicht gefunden wird: du hast es nicht.
Was du von Screenshot ausgehend konkret benötigst: --developer (für die Debug Variante) --with-docs --with-d-bus (das Bauen wird jetzt ein kleines bisschen Zeit benötigen).
Das wird vermutlich nicht alle deine Probleme im Screenshot lösen. Ich habe keine Ahnung was Arthurplugin/Containerextensionplugin ist. Das, was laut Qt "Arthur" ist, ist bei mir jedoch definitiv vorhanden. "Arthur Plugin" scheint ein Programmbeispiel von Qt zu sein (laut google). Außerdem findet er Qt Designer/Linguist/etc. nicht, was aber offensichtlich falsch ist, da die .apps alle vorhanden sind.
Die Dateien müssten ja wahrscheinlich irgendwo im Verzeichnis /usr/local/Cellar liegen...?
Wenn man sie bauen lässt, ja. ;)
Und wie genau kann ich dem make-Befehl sagen, wo es die Dateien suchen soll?
Gar nicht, das muss davor passieren.
 
das hier kriege ich zurück, wenn ich brew info qt eingebe:
qt: stable 4.8.6 (bottled), HEAD
http://qt-project.org/
/usr/local/Cellar/qt/4.8.6 (2790 files, 119M) *
Poured from bottle
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/qt.rb
==> Dependencies
Optional: d-bus ✘, mysql ✘
==> Options
--developer
Build and link with developer options
--universal
Build a universal binary
--with-d-bus
Build with d-bus support
--with-docs
Build documentation
--with-mysql
Build with mysql support
--with-qt3support
Build with deprecated Qt3Support module support
--HEAD
install HEAD version
==> Caveats
We agreed to the Qt opensource license for you.
If this is unacceptable you should uninstall.

.app bundles were installed.
Run `brew linkapps` to symlink these to /Applications.

Sieht also eigentlich nicht schlecht aus.
Ich hatte ja vor der Installation durch brew schon selbst versucht, die Pakete zu installieren.
Kann es sein, dass da vielleicht schon Daten/Schreibrechte angelegt wurden, sodass brew die Pakete nicht mehr vollständig installiert hat?

Versteh ich das richtig, dass es bei dir funktioniert, Kaito?


*edit scheinbar scheint ja die developer option wirklich zu fehlen. wenn ich jetzt versuche das nachzuinstallieren via
brew install qt --developer gibt er mir nur aus: Warning: qt-4.8.6 already installed
Kann man das forcieren?
 
> Sieht also eigentlich nicht schlecht aus.
Doch, sieht schlecht aus, denn du hast weder dbus, noch docs, noch developer genutzt.

> Kann es sein, dass da vielleicht schon Daten/Schreibrechte angelegt wurden, sodass brew die Pakete nicht mehr vollständig installiert hat?
Das hätte er dir bei der Installation gesagt, sodass du an dieser Stelle hättest handeln können/müssen.
Was natürlich immer sein kann sind konfligierende Libs, wovon die je "falschen" zuerst gefunden werden, aber das musst du anhand deiner Situation bestimmen/herausfinden (wir wissen ja nicht was wo bei dir ist).

> Versteh ich das richtig, dass es bei dir funktioniert, Kaito?
Was denn? Du hast nie genannt, was du mit den drei Deps eigentlich machst.
Es würde aber ziemlich sicher nicht funktionieren, da mein Qt keine docs mitkompiliert hat.

> *edit scheinbar scheint ja die developer option wirklich zu fehlen. wenn ich jetzt versuche das nachzuinstallieren via
Nur develper wird dir nicht helfen. Dir fehlt mehr als das.

> Kann man das forcieren?
Uninstall, dann install?


Übrigens, nicht erschrecken: mit Debug Symbolen explodiert die Größe von Qt (und es dauert auch dezent länger, versteht sich):
qt: stable 4.8.6 (bottled), HEAD (pinned)
http://qt-project.org/
/usr/local/Cellar/qt/4.8.5 (63551 files, 2.0G)
Built from source with: --with-mysql, --with-debug-and-release, --developer, --with-qtdbus
/usr/local/Cellar/qt/4.8.6 (2794 files, 120M) *
Built from source with: --with-mysql, --developer
 
hey,
sry, dass ich mich nicht mehr gemeldet hatte.
Ich hab die developer und dbus Option noch dazugefügt (brew install qt --with-d-bus --developer) und bei der Installation von vtk noch die Integration mit qt (brew install vtk --with-qt) dazugefügt.
Seitdem scheinen die Bibliotheken alle miteinander zu reden...

Vielen Dank für eure Hilfe!!
 
Zurück
Oben Unten