- 論壇徽章:
- 0
|
本帖最后由 zwjzwj19891228 于 2014-04-01 13:08 編輯
如果在/usr/lib/ 和 當(dāng)前目錄 都有l(wèi)ibtest1234.so,,如圖1
QQ圖片20140401124928.jpg (33.99 KB, 下載次數(shù): 41)
下載附件
2014-04-01 12:49 上傳
那么在再使用 gcc test.c -o test -ltest1234 時(shí)鏈接的動態(tài)庫應(yīng)該是什么呢,是本目錄下的,還是/usr/lib下的呢
本基本確定是/usr/lib下的,可是使用ldd 卻出現(xiàn)這個(gè)現(xiàn)象,如圖2
1.png (13.29 KB, 下載次數(shù): 32)
下載附件
2014-04-01 12:52 上傳
如果我把本目錄下的libtest1234.so 改名為libtest6789.so,在編譯,如圖3
2.png (12.89 KB, 下載次數(shù): 35)
下載附件
2014-04-01 13:04 上傳
為啥本目錄和/usr/lib都存在同一libtest1234.so時(shí),鏈接的是本目錄的libtest1234.so, 而且如果沒有/usr/lib/libtest1234.so 時(shí),需要加-L. -ltest1234才能編譯通過,即使編譯通過也無法運(yùn)行(我沒有加環(huán)境變量,或者ldconf)
為什么,求高手解答 |
|