亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 22421 | 回復: 5
打印 上一主題 下一主題

ldd和運行時提示找不到某個so [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2011-06-12 00:20 |只看該作者 |倒序瀏覽
我用同樣的方法編譯了8個so,并且鏈接到 某個目錄 ,并將這個目錄加到ld.so.conf了
另外編譯了一個可執(zhí)行文件,它依賴這8個so

編譯都沒問題 (表面上看來)

但是執(zhí)行的時候,提示我找不到8個so中的某幾個,并不是提示這8個so都找不到,用ldd命令看也是一樣,部分能找到

大家知道是什么原因嗎?


另外一個問題:什么方式不需要在ld.so.conf中設置目錄呢,也就是我希望跟windows一樣,能自動找到在本目錄下的so
不知道我說清楚了沒有

我是linux新手,以前一直做windows下開發(fā),謝謝大蝦指點

論壇徽章:
0
2 [報告]
發(fā)表于 2011-06-12 11:55 |只看該作者
http://blog.chinaunix.net/space. ... =blog&id=366963

你得執(zhí)行下ldconfig,應該就可以了

假設你編譯出來的可執(zhí)行文件是 a.out,你執(zhí)行 ldd a.out 就可以看到運行時是否能找到相應的庫了

[root@redhat tcpBreak]# ldd a.out
        libtest.so => not found
        libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x40024000)
        libm.so.6 => /lib/tls/libm.so.6 (0x400d7000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x400f9000)
        libc.so.6 => /lib/tls/libc.so.6 (0x42000000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

這種not found的情況,執(zhí)行時就找不到

論壇徽章:
0
3 [報告]
發(fā)表于 2011-06-14 22:08 |只看該作者
本帖最后由 bbxyard 于 2011-06-14 22:40 編輯

樓主:鏈接時OK了,像必用的"-L MyLibPath -lxxx " 或 絕對路徑“MyLibPath/libxxx.so”的形式.
linux 可執(zhí)行文件在$PATH里找,動態(tài)庫在$LD_LIBRARY_PATH(這個一般就是/lib /usr/lib兩個目錄)
-L 指定的"MyLibPath"不在環(huán)境變量里,當然找不到了.

linux 開發(fā)環(huán)境推薦的搭建方式.

可以在自己的home目錄里(快捷方式:運行push ~ 或cd ~ 或 cd即可),分別建立bin lib目錄.
然后 vim .bashrc
#在文件尾部 將bin lib 兩個目錄設置到這兩個環(huán)境變量里來.
#. 注意這里一定是export. 不然不生效的.

  1. export PATH=.:$HOME/bin:$PATH
  2. export LD_LIBRARY_PATH=.:$HOME/lib:$LD_LIBRARY_PATH
復制代碼
#. 然后重啟動shell 或者
. .bashrc 或者
source .bashrc 即可 重新設置環(huán)境變量.
#. 檢查一下: echo $LD_LIBRARY_PATH 有值 就說明OK了.

#. 然后把樓主的8個lib文件,建個符號鏈接放在lib下,運行那個可執(zhí)行文件就OK啦

論壇徽章:
0
4 [報告]
發(fā)表于 2011-06-17 00:02 |只看該作者
非常感謝兩位。
我的問題是這么解決的。
我編譯8個so的時候,在編譯好其中的幾個后,曾經想用ldd看看依賴怎么樣,因為不想在系統(tǒng)目錄下有我的文件,只好在conf里面配了我的目錄,ldconfig了一下,發(fā)現(xiàn)ok的
然后編譯剩下的so
然后編譯exe
這個時候忘記再ldconfig一下。
后來我調這個后,就能找到了。


linux下發(fā)現(xiàn)的錯誤可謂是五花八門,呵呵,有點意思

論壇徽章:
0
5 [報告]
發(fā)表于 2011-06-17 12:13 |只看該作者
目錄加到ld.so.conf之后要ldconfig一下,這才是最主要問題

論壇徽章:
0
6 [報告]
發(fā)表于 2011-06-17 13:24 |只看該作者
本帖最后由 bbxyard 于 2011-06-17 13:29 編輯

不是所有用戶都使用的可執(zhí)行程序和.so .a建議放在自己“家”里,不用驚動管理員哈:emn1:

linux要保持“最小權限”
/etc/ld.so.conf 和 ldconfig 沒有root權限不能操作的.

  1. export PATH=.:$HOME/bin:$PATH
  2. export LD_LIBRARY_PATH=.:$HOME/lib:$LD_LIBRARY_PATH
復制代碼
建議還是自己家里,建個bin,lib以后系統(tǒng)重做了,都不受影響,而且如果是多人協(xié)作的話,還不干擾別人的程序.
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP