/usr/bin/ld 不小心被改爛了 - Linux

Sandy avatar
By Sandy
at 2008-10-02T11:17

Table of Contents


shared library 有三個名字
1. real name
2. soname
3. linker name

libcv.so 是 linker name,沒有這個檔案 linker 會找不到你要求的 -lcv

libcv.so.1 應該是 soname,而 libcv.so.1.0.0 是真正 library 所在的檔案。
如果一個執行檔有使用到 shared library 時,它會標示 soname 讓 dynamic
linker/loader 去尋找(詳見 ld.so manpage)。

所以編譯好的程式無法跑是 ld.so 找不到 library(請見 ld.so 的 manpage);
無法編譯則是 /usr/bin/ld 找不到 library(找不到 linker name,搜尋路徑
不正確等等)。

ldconfig 並不會幫你建立 libcv.so,必須在安裝 library 的時候手動建立。
ldconfig 會建立 ld.so.cache 讓 dynamic linker/loader 使用。

※ 引述《Reinhard (偽ABJ)》之銘言:
: 我寫的那支程式沒 autoconfig
: ldconfig 作完了還是找不到 lcv
: 除非把 libcv.so.1 rename 成 libcv.so
: 如果其他板友有其他高見也請指點 @@
: 等下試試看重開會不會有效好了 XD
: ※ 引述《poppyer (破破)》之銘言:
: : 那就有點奇怪了
: : 應該是可以的
: : 它會找到libcv.so.1的, 不用帶-lcv1.0.0
: : 再試試sudo ldconfig讓它更新一下cache
: : 同時你的程序make以前, 重新autoconfig / configure一下
: : 還不行我也沒辦法了

--
Tags: Linux

All Comments

Yuri avatar
By Yuri
at 2008-10-04T17:56
感謝教學,/usr/lib底下很多link name和soname都是符號連結

新版的 vmware server 2.0 好難用

Catherine avatar
By Catherine
at 2008-10-02T10:22
以前 1.0.x 用了好久都沒問題, 速度快又方便, 現在新的 2.0 版真是差太多了... 最大的問題是全部改用 Web 介面操作... 連進 virtual machine 畫面 也只能透過 Browser... 但就因為是 Browser 的限制, 很多以前有的功能變成沒有了, 譬如 resize w ...

amsn會當機

Ursula avatar
By Ursula
at 2008-10-02T02:45
有可能是graphics卡驅動沒裝好 看挂掉以後的dmesg, 或者/var/log/X*.log有沒有說明 另: 推薦用Mercury MSN, 比amsn好多了, 雖然是java的, 占內存多些 ※ 引述《copnew (newcop)》之銘言: : 我用的是舊版的gaim即時通訊軟體 : 朋友說想要 ...

amsn會當機

Franklin avatar
By Franklin
at 2008-10-02T01:09
我用的是舊版的gaim即時通訊軟體 朋友說想要開視訊 所以我推薦他用amsn 他的系統是ubuntu 8.04 可是不知道為什麼他開msn的時候會當機 目前會當機的情形有二: 1.檢視離線訊息時 2.更換照片時,尺寸小的照片不會當機但是看起來不清楚 想要換到大尺寸的照片,就當機了 這兩種情況都是X wi ...

OpenSUSE 11.0 Language Pack

Zora avatar
By Zora
at 2008-10-02T00:17
請問一下, OpenSUSE 11.0的Language Pack(也就是第二片CD) 要怎麼安裝中文環境呢? 如果要同時支援UNICODE跟Big-5,有什麼要特別注 意的嗎? Thanks in advance! - ...

Fedora 8 CD 版

Rae avatar
By Rae
at 2008-10-01T23:10
請問 FEDORA 8 CD 版還有哪邊可以抓 不是LIVE-CD~~是CD安裝完整版 因為目前只能用CD安裝 但是找到的都是DVD版的 請問還有提供CD版的嗎? - ...