3D Forum > Bforartists unter Linux kompilieren

Bforartists unter Linux kompilieren

26.08.2016 19:10
 
TilesFr. 26 Aug. 2016, 19:10 Uhr
Nachdem das Problem ja inzwischen drei Leute beschäftigt, bluedxca93, khaos und mich, dacht ich mir ich mach mal einen Thread dafür auf smile

Mir selber ist inzwischen gelungen ein Linux Build unter Ubuntu 15 zu erstellen. Dabei habe ich mich an das offizielle Blender Tutorial gehalten. Und zwar der Weg über das install_deps.sh File. Bforartists basiert ja auf Blender 2.76, und will dessen Dependencies.

Nachdem das Forum hier mittels Smiley die Links zerteppert kommt der Link leider in zwei Teilen. Bitte von Hand zusammensetzen:

https://wiki.blender.org/index.php/Dev:

Doc/Building_Blender/Linux/Ubuntu/CMake

Dabei gab es zwei Probleme. OSL hat gestreikt. Das habe ich dann ausgeknipst:

./build_files/build_environment/install_deps.sh --with-all --skip-osl

Ich habe dann versucht das OSL von Hand zu kompilieren, aber da ist einfach für mich als Nicht Linuxaner Ende der Fahnenstange.

Und an Cuda habe ich mich noch gar nicht rangewagt. Und das sind dann auch gleich die zwei Sachen die in meiner Version hier fehlen. Cuda und OSL ^^

Aber es gibt nun ein 64 Bit Linux Build für Ubuntu. Das ist ein Anfang. Ich weiss nur nicht ob das auch auf anderen Linux Installationen läuft, oder nur auf meiner Installation ^^

Wenn jemand mit Ubuntu Linux Lust hätte das mal eben auszuprobieren wäre ich äusserst dankbar. Und für Hilfe beim kompilieren von OSL sowieso. Cuda schaun wer dann später mal

50 Mb: http://www.bforartists.de/ext/Bforartists.tar.gz
 
 
TilesFr. 26 Aug. 2016, 19:22 Uhr
Hasi sagt des läuft wohl auch nur wieder auf meiner Installation. Auf seinem Debian tuts net -.-
 
bluedxca93Fr. 26 Aug. 2016, 19:33 Uhr
Tiles:

schau dir 484_pack_the_libs. und kopier das in dein Termin dort wo bforartist installiert ist.

was dat tut? Nun es kopiert alle libs die es benötigt werden in ein Unterverzeichnes das ich mal libs gennant habe.
klappt nur wenn man in dem Ordner ist wo sich auch bforartists und das Verzeichnis libs befindet:

RUNME.SH:

export LD_LIBRARY_PATH=libs
#oder anstatt libs voller path bin gerade am experimentieren!
./bforartists

Damit geht sogar bforartists für 32 bit 14.04 auf 14.10 64 bit. probier moin mal 15.x.
Keine super Lösung aber damit wäre es zumindest mal möglich die Librarys mitzugeben.
 
TilesFr. 26 Aug. 2016, 20:28 Uhr
Danke für die Idee. Aber ich glaube was wir brauchen ist das statische Linken. Das wird sogar in dem obigen Blender Tutorial erwähnt. In dem eingeklappten Kapitel Manual Cmake Setup (Optional)

Das hatte ich nur übersehen bisher.

Static Linking

If you want to share your build with others you may want to include libraries with Blender (statically linked libraries). ...
 
khaosSa. 27 Aug. 2016, 08:51 Uhr
So würde das idealerweise aussehen wenn du's portable haben möchtest:

ldd ./blender
linux-vdso.so.1 (0x00007fffa13c4000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007ff979d77000)
libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007ff979ac8000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007ff9798aa000)
libGLU.so.1 => /usr/lib/x86_64-linux-gnu/libGLU.so.1 (0x00007ff97963b000)
libGL.so.1 => /usr/lib/x86_64-linux-gnu/libGL.so.1 (0x00007ff9793ac000)
libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007ff979068000)
libXi.so.6 => /usr/lib/x86_64-linux-gnu/libXi.so.6 (0x00007ff978e58000)
libXxf86vm.so.1 => /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1 (0x00007ff978c52000)
libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007ff978a4e000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007ff97884a000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ff9784a9000)
/lib64/ld-linux-x86-64.so.2 (0x00005593d48a0000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007ff9781a3000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007ff977f8d000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007ff977d72000)
libpng16.so.16 => /usr/lib/x86_64-linux-gnu/libpng16.so.16 (0x00007ff977b3e000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007ff9777bd000)
libGLX.so.0 => /usr/lib/x86_64-linux-gnu/libGLX.so.0 (0x00007ff97758c000)
libGLdispatch.so.0 => /usr/lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007ff9772a2000)
libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007ff977080000)
libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007ff976e6e000)
libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007ff976c69000)
libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007ff976a63000)
 
bluedxca93Sa. 27 Aug. 2016, 14:10 Uhr
erm. mir fällt da nur ein, dass man z.b Libreoffice oder wine nicht statisch kompilieren kann/soll.Grund ist das i.wann das.statisch gelinkte Programm grösser wird als lib+ Programm.

aber die ein oder andere lib wäre vlllt. besser statisch.

mit ld preload kann man ja theoretisch im Notfall die restlichen libs vorschalten falls nicht alle statisch eingebunden werden können.funktioniert so. ähnl. nicht auch snappy?
 
bluedxca93Sa. 27 Aug. 2016, 14:13 Uhr
libpng ist nicht immer .16 also die restlichen libs sicherheitshalber in nem Ordner mitliefern. Das script dazu hab ich ja schon vorher hier geschrieben.
 
khaosSa. 27 Aug. 2016, 14:42 Uhr
Grund ist das i.wann das.statisch gelinkte Programm grösser wird als lib+ Programm.

Nicht nur irgendwann sondern eigentlich schon ab der ersten statischen Library.
Und manche Libraries kann man eh nicht statisch linken, etwa libc - wobei man das mit ziemlich dreckigen Hacks auch hinbekommt.

Alles weitere steht ja schon weiter oben - aber davon abgesehen ist es kein guter Weg LD_LIBRARY_PATH so zu nutzen! Um eher in die Richtung zu kommen wie man es eigentlich verwenden sollte wäre solch ein Script angebracht:


#!/bin/bash
( LD_LIBRARY_PATH="libs" ; ./bforartists )


Dann wird LD_LIBRARY_PATH nur lokal gesetzt.
 
bluedxca93Sa. 27 Aug. 2016, 17:05 Uhr
bash2.05b mit dietlibc kompiliert hat z.b. i.was um 700 kb stripped. Aber ohne teilweise recht sinnfreie hacks geht das nicht deshalb schreiben die ja auch die Version in den Download link für blender.

Kommt das Semikolon nicht raus? Ansonsten klar export benutz ich einfach weil ich nur im Terminalemulator arbeite und das eh in den nächsten tab nicht übernommen wird.hast schon recht so ist es besser.
Das ich auch Backticks klammern vorziehe, macht das noch Schlimmer oder?.
 
TilesSa. 27 Aug. 2016, 17:54 Uhr
Ich versteh kein Wort
 
 

 


 
 
© 3D-Ring - deutsche 3D Software Community, Archiv 2001 - 2006