Moin,
im Rahmen meines Projektseminars erweitern wir die Volumenrendering-Software Voreen (
www.voreen.org). Dabei würde ich sehr gern auch auf meinem Arch-Notebook arbeiten, habe jedoch beim Kompilieren (bzw. genauer bei linken) ein Problem bei dem ich nicht weiterkomme:
Mit den vanilla-Einstellungen können beim finalen Linking einige GLEW-Funktionen nicht aufgelöst werden:
cd src/core/ && make -f Makefile.voreenlib_core
make[1]: Entering directory `/home/christian/Daten/Uni/ss10/projektseminar/prosem10-plotting/voreen/src/core'
make[1]: Für das Ziel »first« ist nichts zu tun.
make[1]: Leaving directory `/home/christian/Daten/Uni/ss10/projektseminar/prosem10-plotting/voreen/src/core'
cd src/qt/ && make -f Makefile.voreenlib_qt
make[1]: Entering directory `/home/christian/Daten/Uni/ss10/projektseminar/prosem10-plotting/voreen/src/qt'
make[1]: Für das Ziel »first« ist nichts zu tun.
make[1]: Leaving directory `/home/christian/Daten/Uni/ss10/projektseminar/prosem10-plotting/voreen/src/qt'
cd apps/voreenve/ && make -f Makefile
make[1]: Entering directory `/home/christian/Daten/Uni/ss10/projektseminar/prosem10-plotting/voreen/apps/voreenve'
g++ -Wl,--hash-style=gnu -Wl,--as-needed -o voreenve .obj/main.o .obj/voreenmainwindow.o .obj/voreenvisualization.o .obj/aggregationgraphicsitem.o .obj/arrowgraphicsitem.o .obj/linkarrowgraphicsitem.o .obj/linkarrowgraphicsitemstub.o .obj/linkdialogarrowgraphicsitem.o .obj/linkdialoggraphicsview.o .obj/linkdialogprocessorgraphicsitem.o .obj/linkdialogpropertygraphicsitem.o .obj/networkeditor.o .obj/openpropertylistbutton.o .obj/portarrowgraphicsitem.o .obj/portgraphicsitem.o .obj/processorgraphicsitem.o .obj/propertygraphicsitem.o .obj/propertylinkdialog.o .obj/propertylistgraphicsitem.o .obj/rootgraphicsitem.o .obj/textgraphicsitem.o .obj/moc_voreenmainwindow.o .obj/moc_voreenvisualization.o .obj/moc_linkdialoggraphicsview.o .obj/moc_linkdialogpropertygraphicsitem.o .obj/moc_networkeditor.o .obj/moc_openpropertylistbutton.o .obj/moc_processorgraphicsitem.o .obj/moc_propertygraphicsitem.o .obj/moc_propertylinkdialog.o .obj/moc_propertylistgraphicsitem.o .obj/moc_rootgraphicsitem.o .obj/moc_textgraphicsitem.o .obj/qrc_vrn_app.o .obj/qrc_voreenve.o -L/usr/lib -L/usr/X11R6/lib -lglut -L/home/christian/Daten/Uni/ss10/projektseminar/prosem10-plotting/voreen -lGLEW -lvoreen_qt -lvoreen_core -lIL -ltiff -lz -lfreetype -lftgl -lpthread -lQtOpenGL -lQtGui -lQtCore -lGLU -lGL
/home/christian/Daten/Uni/ss10/projektseminar/prosem10-plotting/voreen/libvoreen_core.so: undefined reference to `__glewVertexAttrib2s'
[...]
collect2: ld gab 1 als Ende-Status zurück
make[1]: *** [voreenve] Fehler 1
make: *** [sub-apps-voreenve-voreenve-pro-make_default] Fehler 2
make[1]: Leaving directory `/home/christian/Daten/Uni/ss10/projektseminar/prosem10-plotting/voreen/apps/voreenve'
Wenn ich das
-Wl,--as-needed Linker-Flag rausnehme, kann er voreenve problemlos zu Ende linken. Beim Start erhalte ich jedoch die Fehlermeldung:
[christian./home/christian/Desktop/ss10/projektseminar/prosem10-plotting/voreen/apps/voreenve]./voreenve
./voreenve: error while loading shared libraries: libvoreen_qt.so.1: cannot open shared object file: No such file or directory
Die entsprechende Lib ist jedoch vorhanden, jedoch nur im Hauptordner (also .../prosem10-plotting/voreen). Ich hab jedoch zu Testzwecken die Libs auch in nach voreen/apps/voreenve kopiert - aber der Fehler bleibt der gleiche.
Deswegen meine Frage:
Wo suchen Binaries denn so ihre dynamisch gelinkten Libraries? Wo müssen die .so Dateien hin, damit voreenve sie findet? Oder mißinterpretiere ich die Fehlermeldung?
Vielleicht habt Ihr ja auch noch eine andere Idee.
Die Voreenleute hier bauen ihr Voreen alle auf Windows oder OSX, und der eine der auf Linux baut nutzt Suse. Dort klappt das jedoch alles problemlos.
Falls Ihr mehr Infos braucht sagt Bescheid, falls Ihr es selbst ausprobieren wollt, geht auf
www.voreen.org - da kann man sich den Source runterladen oder das svn auschecken.
Schonmal viele Dank im Voraus und liebe Grüße,
Christian