對於包含了沒有安裝到系統目錄的共享庫的程序而言,必須使用 LD_LIBRARY_PATH 設置額外的共享庫路徑,很多人非常反感使用一個 腳本設置 LD_LIBRARY_PATH 然後再執行程序的做法。
但是無可奈何對吧?
嘻嘻,起始不用的,只要在命令行添加
-Wl,-z,origin -Wl,-rpath,$ORIGIN
這樣的參數就可以了。默認就可以搜索可執行文件所在的目錄。
如果目錄是這樣的
installdir /bin/yourEXE /lib/yourLIBS
那可以這樣來
-Wl,-z,origin -Wl,-rpath,$ORIGIN/../lib/
:) 就這麼簡單。
慢点儿,没看懂这样子比用 LD_LIBRARY_PATH 在运行时再增加动态库搜索路径的方式好在哪里?
On Thu, Aug 23, 2012 at 8:38 AM, Ma Xiaojun damage3025@gmail.com wrote:
原理是啥?
Fedora中文郵件列表:https://admin.fedoraproject.org/mailman/listinfo/chinese
相当于让软件“绿色”运行了?
2012/8/23 Tommy He lovenemesis@fedoraproject.org
慢点儿,没看懂这样子比用 LD_LIBRARY_PATH 在运行时再增加动态库搜索路径的方式好在哪里?
On Thu, Aug 23, 2012 at 8:38 AM, Ma Xiaojun damage3025@gmail.com wrote:
原理是啥?
Fedora中文郵件列表:https://admin.fedoraproject.org/mailman/listinfo/chinese
-- Take a Deep Breath out of Windows
https://fedoraproject.org/wiki/User:Lovenemesis
Fedora中文郵件列表:https://admin.fedoraproject.org/mailman/listinfo/chinese
自行搜索 rpath
On Wed, Aug 22, 2012 at 8:38 PM, Ma Xiaojun damage3025@gmail.com wrote:
原理是啥?
Fedora中文郵件列表:https://admin.fedoraproject.org/mailman/listinfo/chinese
2012/8/23 Weng Xuetian wengxt@gmail.com:
自行搜索 rpath
多謝指點! 傳送們:http://www.eyrie.org/~eagle/notes/rpath.html
原理簡單來說,就是在*編譯時*增加一些參數讓生成的可執行文件可以直接搜索 . 或者 ../lib
不對請指正
一个编译时处理,一个运行时处理。
相比在运行时用脚本设置共享库路径的来说,没什么差别嘛。 相信没一个理智的人会为了几个软件的运行去更改整个 Shell 的共享库搜索路径吧。
还是感谢分享~
2012/8/24 Ma Xiaojun damage3025@gmail.com:
2012/8/23 Weng Xuetian wengxt@gmail.com:
自行搜索 rpath
多謝指點! 傳送們:http://www.eyrie.org/~eagle/notes/rpath.html
原理簡單來說,就是在*編譯時*增加一些參數讓生成的可執行文件可以直接搜索 . 或者 ../lib
不對請指正
Fedora中文郵件列表:https://admin.fedoraproject.org/mailman/listinfo/chinese
export LD_LIBRARY_PATH=.:{LD_LIBRARY_PATH}
On 2012/08/24 10:34, Tommy He wrote:
一个编译时处理,一个运行时处理。
相比在运行时用脚本设置共享库路径的来说,没什么差别嘛。 相信没一个理智的人会为了几个软件的运行去更改整个 Shell 的共享库搜索路径吧。
还是感谢分享~
2012/8/24 Ma Xiaojun damage3025@gmail.com:
2012/8/23 Weng Xuetian wengxt@gmail.com:
自行搜索 rpath
多謝指點! 傳送們:http://www.eyrie.org/~eagle/notes/rpath.html
原理簡單來說,就是在*編譯時*增加一些參數讓生成的可執行文件可以直接搜索 . 或者 ../lib
不對請指正
Fedora中文郵件列表:https://admin.fedoraproject.org/mailman/listinfo/chinese
2012/8/23 Tommy He lovenemesis@fedoraproject.org:
相信没一个理智的人会为了几个软件的运行去更改整个 Shell 的共享库搜索路径吧。
顯然是修改App的可執行文件,謝謝……
你的传送门指向的文章中列举的 LD_LIBRARY_PATH 弊端之一是会影响 Shell 共享库搜索路径,谢谢……
我的意思是正常的人都只会在一行命令之声明额外的共享库搜索,不会为了一个程序去在整个 Shell 生命甚至导出环境变量。
2012/8/24 Ma Xiaojun damage3025@gmail.com:
2012/8/23 Tommy He lovenemesis@fedoraproject.org:
相信没一个理智的人会为了几个软件的运行去更改整个 Shell 的共享库搜索路径吧。
顯然是修改App的可執行文件,謝謝……
Fedora中文郵件列表:https://admin.fedoraproject.org/mailman/listinfo/chinese
chinese@lists.fedoraproject.org