linux下拷貝動態庫遇到的問題

2021-10-07 01:20:06 字數 1295 閱讀 4503

linux預設cp命令是有別名的,也就是說在執行cp命令的時候,實際上執行的是別名的命令。

通過alias命令可以檢視當前系統的別名設定情況:

可以看到cp命令已經設定了別名。這樣即使使用cp -f也不會生效。

\cp會呼叫原生cp命令不使用別名,因此能達到效果。

除了\cp外還有一種寫法:

#unalias cp

#cp -rf ***

首先取消別名,然後再呼叫。unalias命令不是永久生效的。

**********=

通過ln -s 建立軟鏈結語法為:

ln -s 原始檔路徑 軟鏈結檔案路徑

其中,「原始檔路徑」有絕對路徑和相對路徑兩種,使用時需要注意,不然軟鏈結檔案是找不到原始檔的。

===ln 原始檔 新檔案                           #建立硬鏈結

等效於:cp -l 原始檔 新檔案       

ln  -s  原始檔 新檔案                    #建立軟鏈結

等效於:cp -s  原始檔 新檔案

===ln: failed to create symbolic link 『librdkafka.so』: operation not supported===

這個問題主要原因是在使用ln建立軟連線時候失敗了,因為這個檔案系統是ntfs,windows上的,通過虛擬機器掛載到linux上,所以並不支援ln操作

===軟鏈結與硬鏈結的特點===

不論是修改原始檔(test 檔案),還是修改硬鏈結檔案(test-hard 檔案),另乙個檔案中的資料都會發生改變。

不論是刪除原始檔,還是刪除硬鏈結檔案,只要還有乙個檔案存在,這個檔案(inode 號是 262147 的檔案)都可以被訪問。

硬鏈結不會建立新的 inode 資訊,也不會更改 inode 的總數。

硬鏈結不能跨檔案系統(分割槽)建立,因為在不同的檔案系統中,inode 號是重新計算的。

硬鏈結不能鏈結目錄,因為如果給目錄建立硬鏈結,那麼不僅目錄本身需要重新建立,目錄下所有的子檔案,包括子目錄中的所有子檔案都需要建立硬鏈結,這對當前的 linux 來講過於複雜。

不論是修改原始檔(check),還是修改硬鏈結檔案(check-soft),另乙個檔案中的資料都會發生改變。

刪除軟鏈結檔案,原始檔不受影響。而刪除原檔案,軟鏈結檔案將找不到實際的資料,從而顯示檔案不存在。

軟鏈結會新建自己的 inode 資訊和 block,只是在 block 中不儲存實際檔案資料,而儲存的是原始檔的檔名及 inode 號。

軟鏈結可以鏈結目錄。

軟鏈結可以跨分割槽。

linux下動態庫的使用

動態庫的呼叫分為隱式呼叫和顯式呼叫 動態庫是由原始檔編譯而成的,與普通程式不同的是,動態庫沒有main函式,不能單獨執行,需要被呼叫才能執行。寫乙個四則運算的動態庫 calculate.h檔案 ifndef calculate h h define calculate h h 加法 int add ...

linux動態鏈結庫遇到的問題

今天遇到的問題 error while loading shared libraries liblog4c.so.3 cannot open shared object file no such file or directory 找不到這個共享庫檔案。是檔案路徑不對。所以要將其放到 usr lib...

Linux下動態載入庫

七月 9th,2011 以前看到過windows下載入動態庫的例子,linux下沒有特別關注過。動態載入庫有很多好處,比如通過讀取配置檔案,按照配置資訊來為指定型別或指定目錄下的資料使用指定的動態庫方法,既實現了程式的松耦合,也方便擴充套件。在linux下動態載入庫要使用到dl庫。使用的方法記錄如下...