Linux生成和使用so庫

最近,項目要求將處理用戶的操作的函數做成so文件,然後找了一下相關的資料。現將整理的內容描述如下。

首先是會碰到的問題:

1 如何製作動態鏈接庫

2 如何讓程序找到動態鏈接庫


關於問題一:略過!(不是重點,網上文章很多)


關於問題二:比如我們生成了一個動態鏈接庫test.so。此時該文件在我們的工作目錄下,和我們調用的程序在一起,這個時候執行程序會提示

 error while loading shared libraries: XXX.so: cannot open shared object file: No such file or directory

原因是:Linux系統的so文件有固定的查找路徑,so文件必須在這些路徑下。那如何查看這些路徑呢?請cat或者vim /etc/ld.so.conf文件,該文件列出了Linux查找so文件的路徑。

顯然,我並不想打亂Linux系統文件的組織,我希望有一個查找路徑專門對應我的這個程序的所有so文件。如何做:

    第一:mkdir 一個合適路徑,比如我的是 /usr/local/mysopath.。

    第二:cp所有我需要的so文件到這個路徑下。

    第三:vim /etc/ld.so.conf 在最後一行添加我的路徑:/usr/local/mysopath。

    第四:使用ldconfig命令,使得我的修改生效。

再次運行我的程序,這個時候就沒有問題了。將來要卸載自己的程序,只要在卸載的腳本中添加刪除“/usr/local/mysopath”文件的語句即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章