① linux 里有/lib和/usr/lib,這兩個目錄下的庫文件有什麼區別嗎
/lib這個目錄下抄的函數襲庫是在開機時會用到的函數庫,還有/bin、/sbin裡面的那些命令調用的函數庫,/lib/moles下面還會放置內核模塊(驅動程序);而/usr/lib目錄放置的是應用軟體用到的函數庫文件。
② 如何讓自己的動態鏈接庫文件能夠在linux下被調用
如何讓自己的動態鏈接庫文件能夠在linux下被調用
VxWorks 安裝的DVD有很多自己的動態鏈接庫文件,在啟動一些服務的時候需要調用這些動態鏈接庫文件,否則不能啟動一些功能,report:找不到相關的庫文件。
解決的方法可以有多種:
1. 直接創建軟連接的方式,將某動態鏈接庫文件鏈接到 /lib 或者/usr/lib 下。
ln -s `pwd`/xxx.so /lib/xxx.so
這種方式適合少數固定不變動態鏈接庫文件的調用,但如果文件很多,或者這些文件也是經常存在更新的,這么多比較繁瑣。
2. 如果直接把動態鏈接庫文件所在的路徑直接加到系統查找庫的路徑下,這里有兩種方式:
1) 更改/etc/ld.so.conf, 加入自己的動態鏈接庫路徑,好像需要更新/etc/ld.so.cache; 該方法應該可用,沒有嘗試過。
2) 更改環境變數LD_LIBRARY_PATH,把自己的動態鏈接庫路徑,加入到該環境變數中。
export LD_LIBRARY_PATH=/Jenkins/workspace/Mefa_Nightly_regression_Job02/MAIN/mefa_platform/logs_1st_round/mefaImage/simulatorTools:$LD_LIBRARY_PATH
在該環境變數中的動態鏈接庫文件會比系統中/lib 或者 /usr/lib 更早調用。
linux重啟之後,該環境變數會失效;
這種方式更適合自動化的測試的需要。