/usr/local/lib下安装的库文件与使用ldd对动态链接库查看

目录索引

  • 前言
  • 当前安装软件
    • 1. OpenCV4.6.0
    • 2. Ceres
    • 3. ONNXRUNTIME
    • 4. Libtorch
    • 5. LCM
    • 6. Faiss
    • 7. OpenGV
    • 8. Backward
    • 9. libjpeg-turbo
  • 参考安装文档
  • ldd查看动态链接库
  • 库搜索目录

前言

由于之前不小心rm删除了系统目录下/usr/local/lib,难以恢复,于是重新安装了里面的库。这里面的库基本都是有源码安装的包通过sudo make install把库移植到这里的。


当前安装软件

下面总结我的电脑在这个目录下安装的包

1. OpenCV4.6.0

可参照OpenCV3.4.10/4.6.0安装与CMakeLists编写

2. Ceres

# 参照
#Install ceres
git clone https://github.com/HKUST-Swarm/ceres-solver -b D2SLAM && \
cd ceres-solver && \
mkdir build && cd build && \
cmake  -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF -DBUILD_BENCHMARKS=OFF .. && \
sudo make -j6 install && \

3. ONNXRUNTIME

wget https://github.com/microsoft/onnxruntime/releases/download/v1.12.1/onnxruntime-linux-x64-gpu-1.12.1.tgz && \
tar -zxvf onnxruntime-linux-x64-gpu-1.12.1.tgz && \
sudo cp -r onnxruntime-linux-x64-gpu-1.12.1/include/* /usr/local/include/ && \
sudo cp -r onnxruntime-linux-x64-gpu-1.12.1/lib/* /usr/local/lib/

4. Libtorch

wget https://download.pytorch.org/libtorch/cpu/libtorch-cxx11-abi-shared-with-deps-2.0.1%2Bcpu.zip && \
unzip libtorch-cxx11-abi-shared-with-deps-2.0.1+cpu.zip && \
rm libtorch-cxx11-abi-shared-with-deps-2.0.1+cpu.zip && \
cp -r libtorch/* /usr/local/

5. LCM

git clone https://github.com/lcm-proj/lcm && \
cd lcm && \
git checkout tags/v1.4.0 && \
mkdir build && cd build && \
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF -DBUILD_BENCHMARKS=OFF .. && \
make -j6 install && \
pip install lcm

6. Faiss

git clone https://github.com/facebookresearch/faiss.git && \
cd faiss && git checkout v1.7.4 && \
cmake -B build -DCMAKE_BUILD_TYPE=Release -DFAISS_OPT_LEVEL=avx2 -DFAISS_ENABLE_PYTHON=OFF -DBUILD_TESTING=OFF -DFAISS_ENABLE_GPU=OFF . && \
sudo make -C build -j faiss && \
sudo make -C build install

7. OpenGV

#Install OpenGV
git clone https://github.com/HKUST-Swarm/opengv && \
mkdir opengv/build && cd opengv/build && cmake .. && make && \
sudo make install

8. Backward

#Install Backward
sudo wget https://raw.githubusercontent.com/bombela/backward-cpp/master/backward.hpp -O /usr/local/include/backward.hpp

9. libjpeg-turbo

参考Ubuntu 安装libjpeg-turbo库

参考安装文档

# FROM nvidia/cuda:11.6.1-cudnn8-devel-ubuntu20.04
FROM nvcr.io/nvidia/tensorrt:22.08-py3
ARG CERES_VERSION=2.1.0
ARG CMAKE_VERSION=3.23.1
ARG ONNX_VERSION=1.12.1
ARG OPENCV_VERSION=4.6.0
ENV SWARM_WS=/root/swarm_ws
ARG ROS_VERSION=noetic
ARG FAISS_VERSION=1.7.4
ARG LIBTORCH_VERSION=1.13.0#Some basic dependencies
RUN  apt-get -y update && \DEBIAN_FRONTEND=noninteractive TZ=Asia/Beijing apt-get -y install tzdata && \apt-get install -y wget curl lsb-release git \libatlas-base-dev \libeigen3-dev \libgoogle-glog-dev \libsuitesparse-dev \libglib2.0-dev \libyaml-cpp-dev \libdw-dev \vim #Install ROS
# update ros repository
# some code copied from https://github.com/HKUST-Aerial-Robotics/VINS-Fusion/blob/master/docker/Dockerfile
# RUN sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' &&\
RUN sh -c 'echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list' && \curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | apt-key add - && \apt-get update && \if [ "x$(nproc)" = "x1" ] ; then export USE_PROC=1 ; \else export USE_PROC=$(($(nproc)/2)) ; fi && \apt-get update && \DEBIAN_FRONTEND=noninteractive  apt-get install -y \ros-${ROS_VERSION}-ros-base \ros-${ROS_VERSION}-nav-msgs \ros-${ROS_VERSION}-sensor-msgs \ros-${ROS_VERSION}-cv-bridge \ros-${ROS_VERSION}-rviz \ros-${ROS_VERSION}-pcl-ros \ros-${ROS_VERSION}-image-transport-plugins \python3-rosdep \python3-rosinstall \python3-rosinstall-generator \python3-wstool \build-essential \python3-rosdep \ros-${ROS_VERSION}-catkin \net-tools \python3-catkin-tools \htop \xterm \gdb && \rosdep init && \rosdep update#Replace CMAKE
RUN   rm /usr/bin/cmake && \wget https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-Linux-x86_64.sh \-q -O /tmp/cmake-install.sh \&& chmod u+x /tmp/cmake-install.sh \&& /tmp/cmake-install.sh --skip-license --prefix=/usr/ \&& rm /tmp/cmake-install.sh \&& cmake --version#Install ceres
RUN   git clone https://github.com/HKUST-Swarm/ceres-solver -b D2SLAM && \cd ceres-solver && \mkdir build && cd build && \cmake  -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF -DBUILD_BENCHMARKS=OFF .. && \make -j$(USE_PROC) install && \rm -rf ../../ceres-solver && \apt-get clean allRUN   wget https://github.com/microsoft/onnxruntime/releases/download/v${ONNX_VERSION}/onnxruntime-linux-x64-gpu-${ONNX_VERSION}.tgz && \tar -zxvf onnxruntime-linux-x64-gpu-${ONNX_VERSION}.tgz && \cp -r onnxruntime-linux-x64-gpu-${ONNX_VERSION}/include/* /usr/local/include/ && \cp -r onnxruntime-linux-x64-gpu-${ONNX_VERSION}/lib/* /usr/local/lib/ && \rm -rf onnxruntime-linux-x64-gpu-${ONNX_VERSION} && \rm onnxruntime-linux-x64-gpu-${ONNX_VERSION}.tgz#Install Libtorch (CUDA)
# RUN   wget https://download.pytorch.org/libtorch/cpu/libtorch-shared-with-deps-${LIBTORCH_VERSION}%2Bcpu.zip && \
#       unzip libtorch-shared-with-deps-${LIBTORCH_VERSION}+cpu.zip && \
#       rm libtorch-shared-with-deps-${LIBTORCH_VERSION}+cpu.zip && \
#       cp -r libtorch/* /usr/local/RUN   wget https://download.pytorch.org/libtorch/cpu/libtorch-cxx11-abi-shared-with-deps-2.0.1%2Bcpu.zip && \unzip libtorch-cxx11-abi-shared-with-deps-2.0.1+cpu.zip && \rm libtorch-cxx11-abi-shared-with-deps-2.0.1+cpu.zip && \cp -r libtorch/* /usr/local/#Install LCM
RUN   git clone https://github.com/lcm-proj/lcm && \cd lcm && \git checkout tags/v1.4.0 && \mkdir build && cd build && \cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF -DBUILD_BENCHMARKS=OFF .. && \make -j$(USE_PROC) install && \pip install lcm#Install Faiss
RUN   git clone https://github.com/facebookresearch/faiss.git && \cd faiss && git checkout tags/v${FAISS_VERSION} && \cmake -B build -DCMAKE_BUILD_TYPE=Release -DFAISS_OPT_LEVEL=avx2 -DFAISS_ENABLE_PYTHON=OFF -DBUILD_TESTING=OFF -DFAISS_ENABLE_GPU=OFF . && \make -C build -j faiss && \make -C build install && \rm -rf ../faiss#Install OpenCV4 with CUDA
RUN   apt update && \apt install libgtk2.0-dev -y && \wget https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip -O opencv.zip && \unzip opencv.zip && \rm opencv.zip && \git clone https://github.com/opencv/opencv_contrib.git -b ${OPENCV_VERSION}
RUN   cd opencv-${OPENCV_VERSION} && \mkdir build && cd build && \cmake .. \-D CMAKE_BUILD_TYPE=RELEASE \-D CMAKE_INSTALL_PREFIX=/usr/local \-D WITH_CUDA=ON \-D WITH_CUDNN=ON \-D WITH_CUBLAS=ON \-D WITH_TBB=ON \-D OPENCV_DNN_CUDA=ON \-D OPENCV_ENABLE_NONFREE=ON \-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \-D BUILD_EXAMPLES=OFF \-D BUILD_opencv_java=OFF \-D BUILD_opencv_python=OFF \-D BUILD_TESTS=OFF \-D BUILD_PERF_TESTS=OFF \-D BUILD_opencv_apps=OFF \-D BUILD_LIST=calib3d,features2d,highgui,dnn,imgproc,imgcodecs,\
cudev,cudaoptflow,cudaimgproc,cudalegacy,cudaarithm,cudacodec,cudastereo,\
cudafeatures2d,xfeatures2d,tracking,stereo,\
aruco,videoio,ccalib && \make -j $(USE_PROC) && \make install #Install OpenGV
RUN git clone https://github.com/HKUST-Swarm/opengv && \mkdir opengv/build && cd opengv/build && cmake .. && make && \make install#Install Backward
RUN   wget https://raw.githubusercontent.com/bombela/backward-cpp/master/backward.hpp -O /usr/local/include/backward.hpp#Install Vulkan
RUN   wget -qO - https://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo apt-key add - && \wget -qO /etc/apt/sources.list.d/lunarg-vulkan-1.3.231-focal.list https://packages.lunarg.com/vulkan/1.3.231/lunarg-vulkan-1.3.231-focal.list && \apt update && \apt install vulkan-sdk -y#Install taichi
RUN    pip install taichi transformations numpy lcm matplotlib scipy && apt install ros-${ROS_VERSION}-ros-numpy#Build D2SLAM
RUN   mkdir -p ${SWARM_WS}/src/ && \cd ${SWARM_WS}/src/ && \git clone https://github.com/HKUST-Swarm/swarm_msgs.git -b D2SLAM && \git clone https://github.com/HKUST-Swarm/sync_bag_player.git && \git clone https://github.com/ros-perception/vision_opencv.git -b ${ROS_VERSION}
COPY ./ ${SWARM_WS}/src/D2SLAM
WORKDIR $SWARM_WS
RUN   source "/opt/ros/${ROS_VERSION}/setup.bash" && \catkin config -DCMAKE_BUILD_TYPE=Release \--cmake-args -DONNXRUNTIME_LIB_DIR=/usr/local/lib \-DONNXRUNTIME_INC_DIR=/usr/local/include && \catkin build

ldd查看动态链接库

举例要看libcompressed_image_transport.so或者二进制可执行文件所依赖的动态链接库,就这样找。发现缺少libturbojpeg.so.0然后我们就得知需要安装这个库。

注意:所有的库都是依次按序链接,A需要链接B生成,B需要链接C生成。
那么ldd A,就会把B和C都列出来,如果发现not found,可能是A自身直接需要的库缺失,也可能是B需要的库缺失,同样会导致A的所需要的库也not found

ldd /home/zph/tools_ws/devel/lib/libcompressed_image_transport.solinux-vdso.so.1 (0x00007ffef7c8d000)libcv_bridge.so => /home/zph/tools_ws/devel/lib/libcv_bridge.so (0x00007f3ba8477000)libopencv_core.so.406 => /usr/local/lib/libopencv_core.so.406 (0x00007f3ba6679000)libopencv_imgproc.so.406 => /usr/local/lib/libopencv_imgproc.so.406 (0x00007f3ba48ec000)libopencv_imgcodecs.so.406 => /usr/local/lib/libopencv_imgcodecs.so.406 (0x00007f3ba4523000)libconsole_bridge.so.0.4 => /usr/lib/x86_64-linux-gnu/libconsole_bridge.so.0.4 (0x00007f3ba2e5e000)libturbojpeg.so.0 => not foundlibstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f3ba2ad5000)

库搜索目录

cd /etc/ld.so.conf.d #这个里面存放的是库搜索路径
sudo nano opencv.conf # 可以编辑路径
sudo ldconfig # 这样可以更新 /etc/ld.so.cache缓存文件
# 每次加载系统会直接使用/etc/ld.so.cache定义的动态库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/156111.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

身份证号码,格式校验:@IdCard(自定义注解)

目标 自定义一个用于校验 身份证号码 格式的注解IdCard,能够和现有的 Validation 兼容,使用方式和其他校验注解保持一致(使用 Valid 注解接口参数)。 校验逻辑 有效格式 符合国家标准。 公民身份号码按照GB11643-…

竞赛选题 深度学习+opencv+python实现车道线检测 - 自动驾驶

文章目录 0 前言1 课题背景2 实现效果3 卷积神经网络3.1卷积层3.2 池化层3.3 激活函数:3.4 全连接层3.5 使用tensorflow中keras模块实现卷积神经网络 4 YOLOV56 数据集处理7 模型训练8 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 &am…

印度网络安全:威胁与应对

随着今年过半,我们需要评估并了解不断崛起的网络威胁复杂性,这些威胁正在改变我们的数字景观。 从破坏性的网络钓鱼攻击到利用人工智能的威胁,印度的网络犯罪正在升级。然而,在高调的数据泄露事件风暴中,我们看到了政…

游戏反虚拟机检测方案

近年来,游戏市场高速发展,随之而来的还有图谋利益的游戏黑产。在利益吸引下,游戏黑产扩张迅猛,攻击趋势呈现出角度多样化的特点。 在这一趋势下,游戏安全防护的检测覆盖率显得尤为重要。如果游戏在某一环节出现被绕过…

Linux系统卡顿处理记录(Debian)

问题现象描述 现象linux操作系统卡顿(就是很慢),但是系统任然能够使用。 文章一步步的排查并且定位问题。 排查步骤 1. 使用top命令查看CPU是否占用过高。(未发现)排除问题 2. 使用df -h查看硬盘是否被占满。&#…

浏览器唤起钉钉 各项功能

浏览器唤起钉钉对应人员聊天 文档地址 https://open.dingtalk.com/document/client/unified-routing-protocol 唤起聊天 不过只能唤起叮叮的名片 id为叮叮号 <a href"dingtalk://dingtalkclient/action/sendmsg?dingtalk_id{id}"></a>id&#xff1a; …

Spark 9:Spark 新特性

Spark 3.0 新特性 Adaptive Query Execution 自适应查询(SparkSQL) 由于缺乏或者不准确的数据统计信息(元数据)和对成本的错误估算(执行计划调度)导致生成的初始执行计划不理想&#xff0c;在Spark3.x版本提供Adaptive Query Execution自适应查询技术&#xff0c;通过在”运行…

vite+vue3+ts中使用require.context | 报错require is not defined | 获取文件夹中的文件名

vitevue3ts中使用require.context|报错require is not defined|获取文件夹中的文件名 目录 vitevue3ts中使用require.context|报错require is not defined|获取文件夹中的文件名一、问题背景二、报错原因三、解决方法 一、问题背景 如题在vitevue3ts中使用required.context时报…

《UnityShader入门精要》学习1

读者可以在开源网站github&#xff08;https://github.com/candycat1992/Unity_Shaders_Book&#xff09;上下载本书的源代码。 第二章 渲染流水线 渲染流水线的最终目的在于生成或者说是渲染一张二维纹理&#xff0c;即我们在电脑屏幕上看到的所有效果&#xff0c;它的输入是…

【网络安全】「漏洞原理」(二)SQL 注入漏洞之理论讲解

前言 严正声明&#xff1a;本博文所讨论的技术仅用于研究学习&#xff0c;旨在增强读者的信息安全意识&#xff0c;提高信息安全防护技能&#xff0c;严禁用于非法活动。任何个人、团体、组织不得用于非法目的&#xff0c;违法犯罪必将受到法律的严厉制裁。 【点击此处即可获…

发送消息时序图

内窥镜消息队列发送消息原理 目的 有一个多线程的Java应用程序&#xff0c;使用消息队列来处理命令 时序图 startumlactor User participant "sendCmdWhiteBalance()" as Controller participant CommandConsumer participant MessageQueueUser -> Controller:…

【数据库】Sql Server数据迁移,处理自增字段赋值

给自己一个目标&#xff0c;然后坚持一段时间&#xff0c;总会有收获和感悟&#xff01; 在实际项目开发中&#xff0c;如果遇到高版本导入到低版本&#xff0c;或者低版本转高版本&#xff0c;那么就会出现版本不兼容无法导入&#xff0c;此时通过程序遍历创建表和添加数据方式…

开源音乐播放器!

导读音乐是生活的一部分。维基百科关于音乐发展历史的文章有这样一段不错的描述说&#xff1a;“全世界所有的人们&#xff0c;包括哪怕是最孤立、与世隔绝的部落&#xff0c;都会有自己的特色音乐……”好吧&#xff0c;我们开源人就构成了一个部落。我建议我们的“音乐形式”…

TCP/IP(十四)流量控制

一 流量控制 说明&#xff1a; 本文只是原理铺垫,没有用tcpdumpwiresahrk鲜活的案例讲解,后续补充 ① 基本概念 流量控制: TCP 通过接受方实际能接收的数据量来控制发送方的窗口大小 ② 正常传输过程 背景:1、客户端是接收方,服务端是发送方 --> 下载2、假设接收窗…

基于Vue+ELement实现增删改查案例与表单验证

目录 前言 一、增删改查案例的实现 1.查询 2.增加 3.修改 4.删除 5.增删改查效果演示 二、表单验证 1.在官网中找到表单---表单验证 2.定义规则 3.使用规则 前言 Element UI是一款基于Vue.js的组件库&#xff0c;提供了丰富的组件和功能&#xff0c;包括表单、按钮、…

mysql面试题28:MySQL的主从复制模式、MySQL主从复制的步骤、MySQL主从同步延迟的原因、MySQL主从同步延迟的解决办法

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:简单讲一下MySQL的主从复制模式 MySQL的主从复制(Master-Slave Replication)是一种数据库复制技术,用于将一个MySQL数据库服务器(主服务器)的…

nodejs+vue+elementui养老院老年人服务系统er809

“养老智慧服务平台”是运用nodejs语言和vue框架&#xff0c;以MySQL数据库为基础而发出来的。为保证我国经济的持续性发展&#xff0c;必须要让互联网信息时代在我国日益壮大&#xff0c;蓬勃发展。伴随着信息社会的飞速发展&#xff0c;养老智慧服务平台所面临的问题也一个接…

嵌入式面试常见问题(一)

目录 1.什么情况下会出现段错误&#xff1f; 2.swap() 函数为什么不能交换两个变量的值 3.一个函数有六个参数 分别放在哪个区&#xff1f; 4.定义一个变量&#xff0c;赋初值和不赋初值分别保存在哪个区&#xff1f; 5.linux查看端口状态的命令 6.结构体中->和.的区…

uniapp:幸运大转盘demo

<template><view class"index"><image src"../../static/img/158.png" mode"" class"banner"></image><view class"title">绿色积分加倍卡拿到手软</view><almost-lottery :lottery…

使用 L293D 电机驱动器 IC 和 Arduino 控制直流电机

如果您打算组装新的机器人朋友&#xff0c;您最终会想要学习如何控制直流电机。控制直流电机最简单且经济的方法是将 L293D 电机驱动器 IC 与 Arduino 连接。它可以控制两个直流电机的速度和旋转方向。 此外&#xff0c;它还可以控制单极步进电机&#xff08;如 28BYJ-48&#…