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

Susan avatar
By Susan
at 2008-10-01T16:23

Table of Contents

感謝回答

我改的是 /etc/ld.so.conf

目前是長這樣:
/usr/lib
/usr/local/lib
include /etc/ld.so.conf.d/*.conf

事實上我的 .so 檔並不是 libcv.so 而是 libcv.so.1, libcv.so.1.0.0
locate libcv 會回傳(請見最下方兩行):
/usr/share/doc/libcvaux1
/usr/share/doc/libcvaux1/changelog.gz
/usr/share/doc/libcvaux1/changelog.Debian.gz
/usr/share/doc/libcvaux1/copyright
/usr/share/doc/libcv1
/usr/share/doc/libcv1/changelog.gz
/usr/share/doc/libcv1/changelog.Debian.gz
/usr/share/doc/libcv1/copyright
/usr/lib/libcvaux.so.1.0.0
/usr/lib/libcvaux.so.1
/usr/lib/libcv.so.1.0.0
/usr/lib/libcv.so.1

我想可能是要在 g++ linker 參數下 -lcv1.0.0 之類的?
還是乾脆就把 libcv.so.1 改名成 libcv.so?
不過以前是不用這樣搞啦… QQ


※ 引述《poppyer (破破)》之銘言:
: 你改了/usr/bin/ld? 還是/etc/ld.so.conf?
: 如果是後者的話, 貼出來看一下
: 那個ld說 -lcv找不到
: 就是說你的/etc/ld.so.conf中列的地方都找不到一個libcv.so的文件
: 試著找一找它, find / -iname libcv.so
: 看看以前你裝在什地方
: ※ 引述《Reinhard (偽ABJ)》之銘言:
: : 承上文 參考了這篇 http://tinyurl.com/52efab
: : 把 /etc/ld.so.conf
: : 在第一行加上了
: : /usr/local/lib
: : 從此以後我的所以程式都不能跑
: : linking 也不會過了?
: : 原本有裝的一些 library 全部都被 ld 抱怨說找不到…
: : 該怎麼樣 restore 回來呢? QQ
: : 舉一錯誤訊息為例:
: : make -f Makefile CXXFLAGS="-c -O2"
: : make[1]: Entering directory
: : `/home/jutirain/Research/Video_Segmentation/Code/trunk'
: : g++ -c -O2 main.cpp
: : g++ -c -O2 ImageBox.cpp
: : g++ -c -O2 DoFunc.cpp
: : g++ -c -O2 GraphCut/graph.cpp
: : g++ -c -O2 GraphCut/maxflow.cpp
: : g++ -c -O2 GraphCut/GraphCut.cpp
: : g++ -c -O2 OpticalFlowSand.cpp
: : g++ main.o ImageBox.o DoFunc.o graph.o maxflow.o GraphCut.o OpticalFlowSand.o
: : -o video_segmentation `fltk-config --cxxflags --ldflags --use-images` -lgil2
: : -lANN -lm -lcv -lhighgui -lcvaux
: : /usr/bin/ld: cannot find -lcv
: : collect2: ld returned 1 exit status
: : make[1]: *** [all] Error 1
: : make[1]: Leaving directory
: : `/home/jutirain/Research/Video_Segmentation/Code/trunk'
: : make: *** [optimize] Error 2

--
Tags: Linux

All Comments

Olive avatar
By Olive
at 2008-10-02T02:32
果然 rename 就會過 那如果不想 rename 的話該怎做?
以前寫 -lcv 他就知道要找 libcv.so.1… @@
Noah avatar
By Noah
at 2008-10-03T11:52
我遇過沒有lib.so而不能linking的情況是因為沒裝devel套件耶

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

Tristan Cohan avatar
By Tristan Cohan
at 2008-10-01T16:16
你改了/usr/bin/ld? 還是/etc/ld.so.conf? 如果是後者的話, 貼出來看一下 那個ld說 -lcv找不到 就是說你的/etc/ld.so.conf中列的地方都找不到一個libcv.so的文件 試著找一找它, find / -iname libcv.so 看看以前你裝在什地方 ※ 引述 ...

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

Odelette avatar
By Odelette
at 2008-10-01T16:07
承上文 參考了這篇 http://tinyurl.com/52efab 把 /etc/ld.so.conf 在第一行加上了 /usr/local/lib 從此以後我的所以程式都不能跑 linking 也不會過了? 原本有裝的一些 library 全部都被 ld 抱怨說找不到… 該怎麼樣 restore 回 ...

PAFF interlacing is not implemented?

Edith avatar
By Edith
at 2008-10-01T16:02
我有一台相機 我猜應該是用滿新的 quicktime codec 所以在我的 ubuntu 7.04 上面播會爛掉 可以播但是像是一堆雜訊(儘管顏色是對的) mplayer output 附在此文最後 我看到有一句 PAFF interlacing is not implemented? 就跑去 goog ...

shell script for-loop increment

Susan avatar
By Susan
at 2008-10-01T15:43
感謝回答 不過我就是不想用這種方法 因為數列太長時窮舉很困難… ※ 引述《Shenk (閑客)》之銘言: : for是對一個Array作遞迴 : 可以先用seq產生一個你要的所有數字的Array : 例如: : for i in ` seq 0 0.5 1`; do echo $i; done : 產 ...

Can't open display

Leila avatar
By Leila
at 2008-10-01T14:08
要網管設定的, 你給它說你要哪個口, 6000以後的 比如說讓它開6010連到你的6000 (一般它不給6000, 因為它的6000要自己用) 這樣的話, 你的setenv那就要改成 DISPLAY=IP:10 另: 如果是大網的話, 一般網管連6010也舍不得給你,(因為總數有限) 所以說, 用ssh才是 ...