{"id":844,"date":"2013-01-23T11:25:29","date_gmt":"2013-01-23T10:25:29","guid":{"rendered":"http:\/\/www.ozone3d.net\/blogs\/lab\/?p=844"},"modified":"2013-01-23T11:33:03","modified_gmt":"2013-01-23T10:33:03","slug":"glsl-hacker-liste-des-librairies-partagees-sous-linux","status":"publish","type":"post","link":"https:\/\/www.ozone3d.net\/blogs\/lab\/20130123\/glsl-hacker-liste-des-librairies-partagees-sous-linux\/","title":{"rendered":"GLSL Hacker, Liste des Librairies Partag\u00e9es sous Linux"},"content":{"rendered":"<p><center><\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.ozone3d.net\/public\/jegx\/201301\/glslhacker-linux-demo-002.jpg\" alt=\"GLSL Hacker, Linux version\"\/><\/p>\n<\/p>\n<p><\/center><\/p>\n<p><!--more--><\/p>\n<p>Voil\u00e0 quelques fa\u00e7ons de lister les librairies partag\u00e9es (les .so ou Shared Object) dont d\u00e9pend un ex\u00e9cutable sous Linux. Comme executable je vais me baser sur la version Linux de <a href=\"http:\/\/www.geeks3d.com\/20130122\/glsl-hacker-0-4-0-opengl-lua-python-3d-programming-windows-linux-mac-osx\/\">GLSL Hacker 0.4.0<\/a>.<\/p>\n<h2>1 &#8211; readelf<\/h2>\n<pre>\r\n$ readelf -d .\/GLSLHacker | grep NEEDED\r\n\r\n 0x0000000000000001 (NEEDED)             Shared library: [libpthread.so.0]\r\n 0x0000000000000001 (NEEDED)             Shared library: [libX11.so.6]\r\n 0x0000000000000001 (NEEDED)             Shared library: [libGL.so.1]\r\n 0x0000000000000001 (NEEDED)             Shared library: [libdl.so.2]\r\n 0x0000000000000001 (NEEDED)             Shared library: [libstdc++.so.6]\r\n 0x0000000000000001 (NEEDED)             Shared library: [libm.so.6]\r\n 0x0000000000000001 (NEEDED)             Shared library: [libgcc_s.so.1]\r\n 0x0000000000000001 (NEEDED)           \r\n<\/pre>\n<h2>2 &#8211; ldd<\/h2>\n<pre>\r\n$ ldd .\/GLSLHacker\r\n\r\n\tlinux-vdso.so.1 =>  (0x00007fff8c7d8000)\r\n\tlibpthread.so.0 => \/lib\/x86_64-linux-gnu\/libpthread.so.0 (0x00007ffc793a8000)\r\n\tlibX11.so.6 => \/usr\/lib\/x86_64-linux-gnu\/libX11.so.6 (0x00007ffc79070000)\r\n\tlibGL.so.1 => \/usr\/lib\/libGL.so.1 (0x00007ffc78d48000)\r\n\tlibdl.so.2 => \/lib\/x86_64-linux-gnu\/libdl.so.2 (0x00007ffc78b40000)\r\n\tlibstdc++.so.6 => \/usr\/lib\/x86_64-linux-gnu\/libstdc++.so.6 (0x00007ffc78840000)\r\n\tlibm.so.6 => \/lib\/x86_64-linux-gnu\/libm.so.6 (0x00007ffc78540000)\r\n\tlibgcc_s.so.1 => \/lib\/x86_64-linux-gnu\/libgcc_s.so.1 (0x00007ffc78328000)\r\n\tlibc.so.6 => \/lib\/x86_64-linux-gnu\/libc.so.6 (0x00007ffc77f68000)\r\n\t\/lib64\/ld-linux-x86-64.so.2 (0x00007ffc795e8000)\r\n\tlibxcb.so.1 => \/usr\/lib\/x86_64-linux-gnu\/libxcb.so.1 (0x00007ffc77d48000)\r\n\tlibnvidia-tls.so.313.18 => \/usr\/lib\/tls\/libnvidia-tls.so.313.18 (0x00007ffc77b40000)\r\n\tlibnvidia-glcore.so.313.18 => \/usr\/lib\/libnvidia-glcore.so.313.18 (0x00007ffc75638000)\r\n\tlibXext.so.6 => \/usr\/lib\/x86_64-linux-gnu\/libXext.so.6 (0x00007ffc75420000)\r\n\tlibXau.so.6 => \/usr\/lib\/x86_64-linux-gnu\/libXau.so.6 (0x00007ffc75218000)\r\n\tlibXdmcp.so.6 => \/usr\/lib\/x86_64-linux-gnu\/libXdmcp.so.6 (0x00007ffc75010000)\r\n<\/pre>\n<p>Le param\u00e8tre -v nous permet d&#8217;avoir encore plus de d\u00e9tails:<\/p>\n<pre>\r\n$ ldd -v .\/GLSLHacker\r\n\r\n\tlinux-vdso.so.1 =>  (0x00007fffa2950000)\r\n\tlibpthread.so.0 => \/lib\/x86_64-linux-gnu\/libpthread.so.0 (0x00007fb65b580000)\r\n\tlibX11.so.6 => \/usr\/lib\/x86_64-linux-gnu\/libX11.so.6 (0x00007fb65b248000)\r\n\tlibGL.so.1 => \/usr\/lib\/libGL.so.1 (0x00007fb65af20000)\r\n\tlibdl.so.2 => \/lib\/x86_64-linux-gnu\/libdl.so.2 (0x00007fb65ad18000)\r\n\tlibstdc++.so.6 => \/usr\/lib\/x86_64-linux-gnu\/libstdc++.so.6 (0x00007fb65aa18000)\r\n\tlibm.so.6 => \/lib\/x86_64-linux-gnu\/libm.so.6 (0x00007fb65a718000)\r\n\tlibgcc_s.so.1 => \/lib\/x86_64-linux-gnu\/libgcc_s.so.1 (0x00007fb65a500000)\r\n\tlibc.so.6 => \/lib\/x86_64-linux-gnu\/libc.so.6 (0x00007fb65a140000)\r\n\t\/lib64\/ld-linux-x86-64.so.2 (0x00007fb65b7c0000)\r\n\tlibxcb.so.1 => \/usr\/lib\/x86_64-linux-gnu\/libxcb.so.1 (0x00007fb659f20000)\r\n\tlibnvidia-tls.so.313.18 => \/usr\/lib\/tls\/libnvidia-tls.so.313.18 (0x00007fb659d18000)\r\n\tlibnvidia-glcore.so.313.18 => \/usr\/lib\/libnvidia-glcore.so.313.18 (0x00007fb657810000)\r\n\tlibXext.so.6 => \/usr\/lib\/x86_64-linux-gnu\/libXext.so.6 (0x00007fb6575f8000)\r\n\tlibXau.so.6 => \/usr\/lib\/x86_64-linux-gnu\/libXau.so.6 (0x00007fb6573f0000)\r\n\tlibXdmcp.so.6 => \/usr\/lib\/x86_64-linux-gnu\/libXdmcp.so.6 (0x00007fb6571e8000)\r\n\r\n\tVersion information:\r\n\t.\/GLSLHacker:\r\n\t\tlibgcc_s.so.1 (GCC_3.0) => \/lib\/x86_64-linux-gnu\/libgcc_s.so.1\r\n\t\tlibdl.so.2 (GLIBC_2.2.5) => \/lib\/x86_64-linux-gnu\/libdl.so.2\r\n\t\tlibm.so.6 (GLIBC_2.2.5) => \/lib\/x86_64-linux-gnu\/libm.so.6\r\n\t\tlibpthread.so.0 (GLIBC_2.2.5) => \/lib\/x86_64-linux-gnu\/libpthread.so.0\r\n\t\tlibstdc++.so.6 (GLIBCXX_3.4.10) => \/usr\/lib\/x86_64-linux-gnu\/libstdc++.so.6\r\n\t\tlibstdc++.so.6 (GLIBCXX_3.4.14) => \/usr\/lib\/x86_64-linux-gnu\/libstdc++.so.6\r\n\t\tlibstdc++.so.6 (GLIBCXX_3.4.5) => \/usr\/lib\/x86_64-linux-gnu\/libstdc++.so.6\r\n\t\tlibstdc++.so.6 (CXXABI_1.3) => \/usr\/lib\/x86_64-linux-gnu\/libstdc++.so.6\r\n\t\tlibstdc++.so.6 (GLIBCXX_3.4) => \/usr\/lib\/x86_64-linux-gnu\/libstdc++.so.6\r\n\t\tlibc.so.6 (GLIBC_2.4) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\tlibc.so.6 (GLIBC_2.7) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\tlibc.so.6 (GLIBC_2.14) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\tlibc.so.6 (GLIBC_2.3.4) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\tlibc.so.6 (GLIBC_2.11) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\tlibc.so.6 (GLIBC_2.3) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\tlibc.so.6 (GLIBC_2.2.5) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\/lib\/x86_64-linux-gnu\/libpthread.so.0:\r\n\t\tld-linux-x86-64.so.2 (GLIBC_2.2.5) => \/lib64\/ld-linux-x86-64.so.2\r\n\t\tld-linux-x86-64.so.2 (GLIBC_2.3) => \/lib64\/ld-linux-x86-64.so.2\r\n\t\tld-linux-x86-64.so.2 (GLIBC_PRIVATE) => \/lib64\/ld-linux-x86-64.so.2\r\n\t\tlibc.so.6 (GLIBC_2.14) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\tlibc.so.6 (GLIBC_2.3.2) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\tlibc.so.6 (GLIBC_PRIVATE) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\tlibc.so.6 (GLIBC_2.2.5) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\/usr\/lib\/x86_64-linux-gnu\/libX11.so.6:\r\n\t\tlibdl.so.2 (GLIBC_2.2.5) => \/lib\/x86_64-linux-gnu\/libdl.so.2\r\n\t\tlibc.so.6 (GLIBC_2.14) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\tlibc.so.6 (GLIBC_2.15) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\tlibc.so.6 (GLIBC_2.4) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\tlibc.so.6 (GLIBC_2.3.2) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\tlibc.so.6 (GLIBC_2.2.5) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\tlibc.so.6 (GLIBC_2.3.4) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\tlibc.so.6 (GLIBC_2.3) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\/usr\/lib\/libGL.so.1:\r\n\t\tlibdl.so.2 (GLIBC_2.2.5) => \/lib\/x86_64-linux-gnu\/libdl.so.2\r\n\t\tlibc.so.6 (GLIBC_2.2.5) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\/lib\/x86_64-linux-gnu\/libdl.so.2:\r\n\t\tld-linux-x86-64.so.2 (GLIBC_PRIVATE) => \/lib64\/ld-linux-x86-64.so.2\r\n\t\tlibc.so.6 (GLIBC_PRIVATE) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\tlibc.so.6 (GLIBC_2.2.5) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\/usr\/lib\/x86_64-linux-gnu\/libstdc++.so.6:\r\n\t\tlibm.so.6 (GLIBC_2.2.5) => \/lib\/x86_64-linux-gnu\/libm.so.6\r\n\t\tld-linux-x86-64.so.2 (GLIBC_2.3) => \/lib64\/ld-linux-x86-64.so.2\r\n\t\tlibgcc_s.so.1 (GCC_4.2.0) => \/lib\/x86_64-linux-gnu\/libgcc_s.so.1\r\n\t\tlibgcc_s.so.1 (GCC_3.3) => \/lib\/x86_64-linux-gnu\/libgcc_s.so.1\r\n\t\tlibgcc_s.so.1 (GCC_3.0) => \/lib\/x86_64-linux-gnu\/libgcc_s.so.1\r\n\t\tlibc.so.6 (GLIBC_2.14) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\tlibc.so.6 (GLIBC_2.3) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\tlibc.so.6 (GLIBC_2.4) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\tlibc.so.6 (GLIBC_2.3.2) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\tlibc.so.6 (GLIBC_2.3.4) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\tlibc.so.6 (GLIBC_2.2.5) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\/lib\/x86_64-linux-gnu\/libm.so.6:\r\n\t\tlibc.so.6 (GLIBC_PRIVATE) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\tlibc.so.6 (GLIBC_2.2.5) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\/lib\/x86_64-linux-gnu\/libgcc_s.so.1:\r\n\t\tlibc.so.6 (GLIBC_2.14) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\tlibc.so.6 (GLIBC_2.2.5) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\/lib\/x86_64-linux-gnu\/libc.so.6:\r\n\t\tld-linux-x86-64.so.2 (GLIBC_2.3) => \/lib64\/ld-linux-x86-64.so.2\r\n\t\tld-linux-x86-64.so.2 (GLIBC_PRIVATE) => \/lib64\/ld-linux-x86-64.so.2\r\n\t\/usr\/lib\/x86_64-linux-gnu\/libxcb.so.1:\r\n\t\tlibc.so.6 (GLIBC_2.14) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\tlibc.so.6 (GLIBC_2.4) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\tlibc.so.6 (GLIBC_2.3.2) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\tlibc.so.6 (GLIBC_2.3.4) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\tlibc.so.6 (GLIBC_2.2.5) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\/usr\/lib\/tls\/libnvidia-tls.so.313.18:\r\n\t\tlibc.so.6 (GLIBC_2.2.5) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\/usr\/lib\/libnvidia-glcore.so.313.18:\r\n\t\tlibdl.so.2 (GLIBC_2.2.5) => \/lib\/x86_64-linux-gnu\/libdl.so.2\r\n\t\tlibm.so.6 (GLIBC_2.2.5) => \/lib\/x86_64-linux-gnu\/libm.so.6\r\n\t\tlibc.so.6 (GLIBC_2.2.5) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\/usr\/lib\/x86_64-linux-gnu\/libXext.so.6:\r\n\t\tlibc.so.6 (GLIBC_2.3.4) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\tlibc.so.6 (GLIBC_2.14) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\tlibc.so.6 (GLIBC_2.4) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\tlibc.so.6 (GLIBC_2.2.5) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\/usr\/lib\/x86_64-linux-gnu\/libXau.so.6:\r\n\t\tlibc.so.6 (GLIBC_2.4) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\tlibc.so.6 (GLIBC_2.2.5) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\tlibc.so.6 (GLIBC_2.3.4) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\/usr\/lib\/x86_64-linux-gnu\/libXdmcp.so.6:\r\n\t\tlibc.so.6 (GLIBC_2.4) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n\t\tlibc.so.6 (GLIBC_2.2.5) => \/lib\/x86_64-linux-gnu\/libc.so.6\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[414],"tags":[562,567,564,415,566,565],"class_list":["post-844","post","type-post","status-publish","format-standard","hentry","category-linux","tag-glsl-hacker","tag-ldd","tag-librairie","tag-linux-2","tag-readelf","tag-shared-object"],"aioseo_notices":[],"views":561,"_links":{"self":[{"href":"https:\/\/www.ozone3d.net\/blogs\/lab\/wp-json\/wp\/v2\/posts\/844","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ozone3d.net\/blogs\/lab\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ozone3d.net\/blogs\/lab\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ozone3d.net\/blogs\/lab\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ozone3d.net\/blogs\/lab\/wp-json\/wp\/v2\/comments?post=844"}],"version-history":[{"count":0,"href":"https:\/\/www.ozone3d.net\/blogs\/lab\/wp-json\/wp\/v2\/posts\/844\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.ozone3d.net\/blogs\/lab\/wp-json\/wp\/v2\/media?parent=844"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ozone3d.net\/blogs\/lab\/wp-json\/wp\/v2\/categories?post=844"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ozone3d.net\/blogs\/lab\/wp-json\/wp\/v2\/tags?post=844"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}