查詢ROS庫和可執行檔案的鏈結庫

2021-08-10 22:47:15 字數 704 閱讀 3547

使用乙個國產深度相機的時候,發現必須要使用它自己改編的openni2.0驅動,於是就按照它的步驟安裝了。最後可能是使用了乙個make install,把它寫的驅動寫進了系統,並且更改了openni2的鏈結庫位址。

所以後來使用kinect的時候發現,使用roslaunch openni2_launch openni2.launch啟動相機的時候,會報出/camera/rgb/image_raw和/camera/rgb/image_info的時間戳不匹配,並且無法在rviz裡看到彩色點雲。嘗試刪除了openni2的驅動,重新安裝,並不能解決問題。

最後,還是在師兄的指導下知道了如何查詢問題的根源。ros下的可執行檔案和庫都會有一些鏈結庫,通過查詢這些鏈結庫的位置可以檢查是否存在錯誤的鏈結,它們會造成一些沒有直接資訊提示的錯誤。

比如,先進入

cd /opt/ros/kinetic/lib
可以看到ros下所有的庫檔案。再進入發生錯誤的openni2_camera,使用ldd檢查鏈結庫

cd openni2_camera

ldd openni2_camera_node

就可以看見下面的鏈結庫的情況了。

差點要重灌,記錄一下。

linux 查詢可執行檔案

linux下如何查詢可執行檔案,作為乙個linux小菜剛剛有了這個問題,在windows中,可以通過字尾名判斷是否是可執行檔案,比如.exe,bat等是可執行檔案,但是在linux下呢?linux下不能簡單根據檔案字尾判斷是否可執行。linux下判斷乙個檔案是否可執行,關鍵看是否有可執行許可權 比如...

Linux shell 查詢可執行檔案

前言 當你從命令中執行乙個程式的時候,linux系統會搜尋一系列目錄查詢可執行檔案。x 比較是判斷特定的檔案是否有可執行許可權的乙個簡單方法。檢查檔案是否可以執行 當你在shell指令碼中執行大量的指令碼,它就會發揮作用。下面來執行乙個例子,檢查當前檔案是否存在,並可執行。bin bashif x ...

編譯生成動態庫 鏈結動態庫生成可執行檔案

折騰了一天編譯 動態庫的問題,整理一下 參考 現有4個檔案 head.h 庫標頭檔案 source1.cc 庫原始檔1 source2.cc 庫原始檔2 include stdio.h include stdlib.h include head.h int main 庫標頭檔案head.h裡是庫原始...