最近的乙個專案,客戶的需求是把ros庫拷到電腦上直接能執行,而電腦無法聯網,恰好我們的程式依賴了幾個動態庫,無法通過apt-get直接安裝。而客戶操作能力有限,最好把編譯好的檔案拷過去可以直接執行。
上網查閱了一下,程式執行時的動態庫查詢位置位於$ld_library_path
這個目錄下面。echo了以後,結果如下:
/opt/ros/indigo/share/euslisp/jskeus/eus//linux64/lib
:/home/meng/new_catkin_ws2/devel/lib
:/home/meng/new_catkin_ws2/devel/lib/x86_64-linux-gnu
:/home/meng/new_catkin_ws/devel/lib/x86_64-linux-gnu
:/opt/ros/indigo/lib/x86_64-linux-gnu
:/opt/ros/indigo/share/euslisp/jskeus/eus//linux64/lib
:/home/meng/new_catkin_ws/devel/lib
:/opt/ros/indigo/lib
:/opt/ros/indigo/lib/python2.7/dist-packages:/opt/ros/indigo/lib/python2.7/dist-packages
我的catkin工作目錄是new_catkin_ws2,應該是在source devel/setup.bash
的時候已經把動態庫查詢路徑加到/home/meng/new_catkin_ws2/devel/lib/
中了。把依賴的幾個so庫複製到這個資料夾下面,然後把devel中的幾個so複製進來就可以了。 ld 動態鏈結庫配置
一 ldconfig ldconfig是乙個動態鏈結庫管理命令,為了讓動態鏈結庫為系統所共享,還需執行動態鏈結庫的管理命令 ldconfig。ldconfig 命令的用途,主要是在預設搜尋目錄 lib和 usr lib 以及動態庫配置檔案 etc ld.so.conf內所列的目錄下,搜尋出可共享的動...
OpenCV動態鏈結庫和靜態鏈結庫的配置方法
1.鏈結 靜態鏈結和動態鏈結的概念 程式設計追求的是模組化,乙個複雜軟體由許多模組組成,通常將每個模組進行單獨編譯,然後將它們組裝起來,組裝的過程就是鏈結。鏈結處理的是把各個模組之間相互應用的部分都處理好,使得各個模組之間能夠正確地鏈結。按照是否將所有目標檔案 linux的.o win的.obj 生...
動態鏈結庫 靜態鏈結庫
包含標頭檔案和庫 idir 指定編譯查詢標頭檔案的目錄,常用於查詢第三方的庫的標頭檔案,例 gcc test.c i.inc o test。ldir 指定鏈結時查詢lib的目錄,常用於查詢第三方庫。llibrary 指定額外鏈結的lib庫 巨集定義 dmacro 以字串 1 預設值 定義 macro...