chrpath是用来改变程序的depends lib 的搜索路径的,比如我们一般使用$ldd application linux-vdso.so.1 => (0x00007fff89844000) libQt3Support.so.4 => /usr/lib/libQt3Support.so.4 (0x00007f53f7424000) libQtSql.so.4 => /usr/lib/libQtSql.so.4 (0x00007f53f71e6000) libQtxml.so.4 => /usr/lib/libQtXml.so.4 (0x00007f53f6f9f000) libQtNetwork.so.4 => /usr/lib/libQtNetwork.so.4 (0x00007f53f6c84000) libQtGui.so.4 => /usr/lib/libQtGui.so.4 (0x00007f53f60d0000) libQtCore.so.4 => /usr/lib/libQtCore.so.4 (0x00007f53f5c99000) libpthread.so.0 => /lib/libpthread.so.0 (0x00007f53f5a7d000) libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f53f576d000) libm.so.6 => /lib/libm.so.6 (0x00007f53f54e9000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007f53f52d2000)那么我们现在想改变一个so库的搜索路径,不使用/usr/lib/下面的,而是用/usr/local/lib目录下面的,那么就可以使用chrpath工具了$chrpath -r "/usr/local/lib/" applicationapplication: RUNPATH=/usr/libapplication: new RUNPATH: /usr/local/lib$chrpath -c applicationapplication: RUNPATH=/usr/local/lib$ldd application linux-vdso.so.1 => (0x00007fff76555000) libQt3Support.so.4 => /usr/local/lib/libQt3Support.so.4 (0x00007ff62e8a8000) libQtSql.so.4 => /usr/local/lib/libQtSql.so.4 (0x00007ff62e666000) libQtXml.so.4 => /usr/local/lib/libQtXml.so.4 (0x00007ff62e41d000) libQtNetwork.so.4 => /usr/local/lib/libQtNetwork.so.4 (0x00007ff62e0f0000) libQtGui.so.4 => /usr/local/lib/libQtGui.so.4 (0x00007ff62d436000) libQtCore.so.4 => /usr/local/lib/libQtCore.so.4 (0x00007ff62cfa6000)
新闻热点
疑难解答