g++動態鏈結庫路徑問題


編譯好data.so文件后准備使用:
1、data.so文件目錄:/info/admin/data
2、編譯目錄:/info/admin/data
3、編譯錯誤:
g++ -ldata -o tClient test_client.c
collect2: library libdata not found
FQMID-2[/info/admin/data#]g++ -L/info/admin/data -ldata -o tClient test_client.c
ld: 0706-006 Cannot find or open library file: -l data
        ld:open(): A file or directory in the path name does not exist.
collect2: ld returned 255 exit status

4、使用非root用戶登錄,修改.profile文件LIBPATH后,仍然出現與上面相同的錯誤提示。EVN信息:
LIBPATH=:/usr/local/lib:/info/admin/data:.

請高手幫忙,謝謝

9 个解决方案

#1


引用樓主 truewq 的回復:
編譯好data.so文件后准備使用:
 1、data.so文件目錄:/info/admin/data
 2、編譯目錄:/info/admin/data
 



庫文件名字 data.so它是不認識的。


庫文件名都是lib*.

你的這個庫名字應該是  libdata.so才對吧。

這樣他才認識。

#2


名字是libdata.so,筆誤

#3




既然你-L了,那個環境變量就不用修改了。

#4


既然你要修改,冒失是要修改LD_LIBRARY_PATH這個環境變量。

然后你修改庫環境變量之后,記得ldconfig

否則,修改了也沒用。

#5


改了LD_LIBRARY_PATH還是有問題,請說具體點如何解決,謝謝。

#6


直接-L的話(在修改環境變量之前),還是相同的錯誤

#7




正常情況下,上述我的回復應該可以解決問題。

還有一點沒有說到,你看下你對那個庫文件有沒有權限。

因為你是非root權限的。

你換成root

#8


ding yi ge ..................

#9


最后使用g++ -o client test_client.c libdata.so直接編譯。。。。。。。

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com