复现ORB3-YOLO8项目记录

文章目录

  • 1.编译错误
    • 1.1 错误1
    • 1.2 错误2
    • 1.3 错误3
    • 1.4 错误4


1.编译错误

首先ORB-SLAM相关项目已经写过很多篇博客了,从ORB-SLAM2怎么运行,再到现在的项目。关于环境已经不想多说了

1.1 错误1

– DEPENDENCY_LIBS : /home/lvslam/ORB3-YOLO8/Thirdparty/fastdeploy-linux-x64-1.0.3/lib/libfastdeploy.so;/home/lvslam/ORB3-YOLO8/Thirdparty/fastdeploy-linux-x64-1.0.3/third_libs/install/onnxruntime/lib/libonnxruntime.so;/home/lvslam/ORB3-YOLO8/Thirdparty/fastdeploy-linux-x64-1.0.3/third_libs/install/paddle_inference/paddle/lib/libpaddle_inference.so;/home/lvslam/ORB3-YOLO8/Thirdparty/fastdeploy-linux-x64-1.0.4/third_libs/install/paddle_inference/third_party/install/mkldnn/lib/libmkldnn.so.0;/home/lvslam/ORB3-YOLO8/Thirdparty/fastdeploy-linux-x64-1.0.4/third_libs/install/paddle_inference/third_party/install/mklml/lib/libiomp5.so;/home/lvslam/ORB3-YOLO8/Thirdparty/fastdeploy-linux-x64-1.0.3/third_libs/install/openvino/runtime/lib/libopenvino.so;TBB::tbb;TBB::tbbmalloc;TBB::tbbmalloc_proxy;opencv_calib3d;opencv_core;opencv_dnn;opencv_features2d;opencv_flann;opencv_highgui;opencv_imgcodecs;opencv_imgproc;opencv_ml;opencv_objdetect;opencv_photo;opencv_stitching;opencv_video;opencv_videoio;opencv_shape;opencv_superres;opencv_videostab;/home/lvslam/ORB3-YOLO8/Thirdparty/fastdeploy-linux-x64-1.0.3/third_libs/install/fast_tokenizer/lib/libcore_tokenizers.so;/home/lvslam/ORB3-YOLO8/Thirdparty/fastdeploy-linux-x64-1.0.3/third_libs/install/paddle2onnx/lib/libpaddle2onnx.so
– BUILD TYPE:Release
– Compiling on Unix
– Configuring done
– Generating done
– Build files have been written to: /home/lvslam/ORB3-YOLO8/build [ 50%] Built target g2o make[2]: ***
没有规则可制作目标“…/Thirdparty/fastdeploy-linux-x64-1.0.3/lib/libfastdeploy.so”,由“…/lib/libORB_SLAM3.so”
需求。 停止。 make[1]: ***
[CMakeFiles/Makefile2:126:CMakeFiles/ORB_SLAM3.dir/all] 错误 2 make: ***
[Makefile:84:all] 错误 2

这个项目的博主没有说应该用哪个版本的fastdeploy-linux-x64-1.0.3,我就先下载了fastdeploy-linux-x64-1.0.3版本,但是编译不过去
经过测试换成fastdeploy-linux-x64-1.0.4即可!

1.2 错误2

[100%] Linking CXX executable …/Examples/RGB-D/rgbd_tum /usr/bin/ld:
warning: libopencv_video.so.3.4, needed by
…/Thirdparty/fastdeploy-linux-x64-1.0.4/lib/libfastdeploy.so, not
found (try using -rpath or -rpath-link) /usr/bin/ld: warning:
libopencv_highgui.so.3.4, needed by
…/Thirdparty/fastdeploy-linux-x64-1.0.4/lib/libfastdeploy.so, not
found (try using -rpath or -rpath-link) /usr/bin/ld: warning:
libopencv_videoio.so.3.4, needed by
…/Thirdparty/fastdeploy-linux-x64-1.0.4/lib/libfastdeploy.so, not
found (try using -rpath or -rpath-link) /usr/bin/ld: warning:
libopencv_imgcodecs.so.3.4, needed by
…/Thirdparty/fastdeploy-linux-x64-1.0.4/lib/libfastdeploy.so, not
found (try using -rpath or -rpath-link) /usr/bin/ld: warning:
libopencv_imgproc.so.3.4, needed by
…/Thirdparty/fastdeploy-linux-x64-1.0.4/lib/libfastdeploy.so, not
found (try using -rpath or -rpath-link) /usr/bin/ld: warning:
libopencv_core.so.3.4, needed by
…/Thirdparty/fastdeploy-linux-x64-1.0.4/lib/libfastdeploy.so, not
found (try using -rpath or -rpath-link) /usr/bin/ld:
CMakeFiles/rgbd_tum.dir/Examples/RGB-D/rgbd_tum.cc.o: in function
CpuInfer(std::__cxx11::basic_string<char, std::char_traits,
std::allocator > const&, std::__cxx11::basic_string<char,
std::char_traits, std::allocator >,
fastdeploy::vision::DetectionResult*)‘: rgbd_tum.cc:(.text+0xd93):
undefined reference to cv::imread(cv::String const&, int)’
/usr/bin/ld: rgbd_tum.cc:(.text+0xd9b): undefined reference to
cv::String::deallocate()’ /usr/bin/ld: rgbd_tum.cc:(.text+0x104a):
undefined reference to cv::String::allocate(unsigned long)’
/usr/bin/ld: CMakeFiles/rgbd_tum.dir/Examples/RGB-D/rgbd_tum.cc.o: in
function GpuInfer(std::__cxx11::basic_string<char,
std::char_traits, std::allocator > const&,
std::__cxx11::basic_string<char, std::char_traits,
std::allocator >, fastdeploy::vision::DetectionResult*)‘:
rgbd_tum.cc:(.text+0x153f): undefined reference to
cv::imread(cv::String const&, int)’ /usr/bin/ld:
rgbd_tum.cc:(.text+0x1547): undefined reference to
cv::String::deallocate()’ /usr/bin/ld: rgbd_tum.cc:(.text+0x17fa):
undefined reference to cv::String::allocate(unsigned long)’
/usr/bin/ld: CMakeFiles/rgbd_tum.dir/Examples/RGB-D/rgbd_tum.cc.o: in
function TrtInfer(std::__cxx11::basic_string<char,
std::char_traits, std::allocator > const&,
std::__cxx11::basic_string<char, std::char_traits,
std::allocator >, fastdeploy::vision::DetectionResult*)‘:
rgbd_tum.cc:(.text+0x1df5): undefined reference to
cv::imread(cv::String const&, int)’ /usr/bin/ld:
rgbd_tum.cc:(.text+0x1dfd): undefined reference to
cv::String::deallocate()’ /usr/bin/ld: rgbd_tum.cc:(.text+0x20ea):
undefined reference to cv::String::allocate(unsigned long)’
/usr/bin/ld: CMakeFiles/rgbd_tum.dir/Examples/RGB-D/rgbd_tum.cc.o: in
function CpuInfer(std::__cxx11::basic_string<char,
std::char_traits, std::allocator > const&,
std::__cxx11::basic_string<char, std::char_traits,
std::allocator >, fastdeploy::vision::DetectionResult*) [clone
.cold]‘: rgbd_tum.cc:(.text.unlikely+0x35d): undefined reference to
cv::String::deallocate()’ /usr/bin/ld:
CMakeFiles/rgbd_tum.dir/Examples/RGB-D/rgbd_tum.cc.o: in function
GpuInfer(std::_cxx11::basic_string<char, std::char_traits,
std::allocator > const&, std::cxx11::basic_string<char,
std::char_traits, std::allocator >,
fastdeploy::vision::DetectionResult*) [clone .cold]‘:
rgbd_tum.cc:(.text.unlikely+0x3b7): undefined reference to
cv::String::deallocate()’ /usr/bin/ld:
CMakeFiles/rgbd_tum.dir/Examples/RGB-D/rgbd_tum.cc.o: in function
TrtInfer(std::cxx11::basic_string<char, std::char_traits,
std::allocator > const&, std::cxx11::basic_string<char,
std::char_traits, std::allocator >,
fastdeploy::vision::DetectionResult*) [clone .cold]‘:
rgbd_tum.cc:(.text.unlikely+0x402): undefined reference to
cv::String::deallocate()’ /usr/bin/ld:
CMakeFiles/rgbd_tum.dir/Examples/RGB-D/rgbd_tum.cc.o: in function
main.cold’: rgbd_tum.cc:(.text.unlikely+0x5d1): undefined reference to
cv::String::deallocate()’ /usr/bin/ld:
rgbd_tum.cc:(.text.unlikely+0x628): undefined reference to
cv::String::deallocate()’ /usr/bin/ld:
CMakeFiles/rgbd_tum.dir/Examples/RGB-D/rgbd_tum.cc.o: in function
main’: rgbd_tum.cc:(.text.startup+0xc42): undefined reference to
cv::Mat::Mat()’ /usr/bin/ld: rgbd_tum.cc:(.text.startup+0xc4e):
undefined reference to cv::Mat::Mat()’ /usr/bin/ld:
rgbd_tum.cc:(.text.startup+0xe7c): undefined reference to
cv::imread(cv::String const&, int)’ /usr/bin/ld:
rgbd_tum.cc:(.text.startup+0xf55): undefined reference to
cv::String::deallocate()’ /usr/bin/ld:
rgbd_tum.cc:(.text.startup+0x1121): undefined reference to
cv::imread(cv::String const&, int)’ /usr/bin/ld:
rgbd_tum.cc:(.text.startup+0x120a): undefined reference to
cv::String::deallocate()’ /usr/bin/ld:
rgbd_tum.cc:(.text.startup+0x1e13): undefined reference to
cv::String::allocate(unsigned long)’ /usr/bin/ld:
rgbd_tum.cc:(.text.startup+0x1eb2): undefined reference to
cv::String::allocate(unsigned long)’ /usr/bin/ld:
…/Thirdparty/fastdeploy-linux-x64-1.0.4/lib/libfastdeploy.so:
undefined reference to cv::InputArray::InputArray(cv::MatExpr
const&)’ /usr/bin/ld: …/lib/libORB_SLAM3.so: undefined reference to
cv::getTextSize(cv::String const&, int, double, int, int*)’
/usr/bin/ld:
…/Thirdparty/fastdeploy-linux-x64-1.0.4/lib/libfastdeploy.so:
undefined reference to cv::rectangle(cv::Mat&, cv::Rect
,
cv::Scalar
const&, int, int, int)’ /usr/bin/ld:
…/Thirdparty/fastdeploy-linux-x64-1.0.4/lib/libfastdeploy.so:
undefined reference to cv::findContours(cv::InputOutputArray const&,
cv::OutputArray const&, cv::OutputArray const&, int, int,
cv::Point
)’ /usr/bin/ld: …/lib/libORB_SLAM3.so: undefined
reference to cv::Mat::Mat(int, int, int)’ /usr/bin/ld:
…/Thirdparty/fastdeploy-linux-x64-1.0.4/lib/libfastdeploy.so:
undefined reference to cv::fillPoly(cv::Mat&, cv::Point
const**,
int const*, int, cv::Scalar
const&, int, int,
cv::Point
)’ /usr/bin/ld:
…/Thirdparty/fastdeploy-linux-x64-1.0.4/lib/libfastdeploy.so:
undefined reference to cv::KalmanFilter::predict(cv::Mat const&)’
/usr/bin/ld:
…/Thirdparty/fastdeploy-linux-x64-1.0.4/lib/libfastdeploy.so:
undefined reference to cv::KalmanFilter::correct(cv::Mat const&)’
/usr/bin/ld: …/lib/libORB_SLAM3.so: undefined reference to
cv::read(cv::FileNode const&, cv::String&, cv::String const&)’
/usr/bin/ld: …/lib/libORB_SLAM3.so: undefined reference to
cv::putText(cv::InputOutputArray const&, cv::String const&,
cv::Point
, int, double, cv::Scalar
, int, int, bool)’
/usr/bin/ld: …/lib/libORB_SLAM3.so: undefined reference to
cv::OutputArray::create(int, int, int, int, bool, int) const’
/usr/bin/ld: …/lib/libORB_SLAM3.so: undefined reference to
cv::namedWindow(cv::String const&, int)’ /usr/bin/ld:
…/lib/libORB_SLAM3.so: undefined reference to
cv::write(cv::FileStorage&, cv::String const&, int)’ /usr/bin/ld:
…/lib/libORB_SLAM3.so: undefined reference to
cv::FileStorage::operator[](cv::String const&) const’ /usr/bin/ld:
…/lib/libORB_SLAM3.so: undefined reference to cv::Mat::Mat(int, int,
int, cv::Scalar
const&)’ /usr/bin/ld:
…/Thirdparty/fastdeploy-linux-x64-1.0.4/lib/libfastdeploy.so:
undefined reference to cv::getPerspectiveTransform(cv::Point

const*, cv::Point
const*)’ /usr/bin/ld:
…/lib/libORB_SLAM3.so: undefined reference to cv::error(int,
cv::String const&, char const*, char const*, int)’ /usr/bin/ld:
…/Thirdparty/fastdeploy-linux-x64-1.0.4/lib/libfastdeploy.so:
undefined reference to cv::KalmanFilter::KalmanFilter(int, int, int,
int)’ /usr/bin/ld: …/lib/libORB_SLAM3.so: undefined reference to
cv::operator<<(cv::FileStorage&, cv::String const&)’ /usr/bin/ld:
…/lib/libORB_SLAM3.so: undefined reference to cv::Mat::Mat()’
/usr/bin/ld: …/lib/libORB_SLAM3.so: undefined reference to
cv::Formatter::get(int)’ /usr/bin/ld: …/lib/libORB_SLAM3.so:
undefined reference to cv::write(cv::FileStorage&, cv::String const&,
double)’ /usr/bin/ld: …/lib/libORB_SLAM3.so: undefined reference to
cv::FileStorage::FileStorage(cv::String const&, int, cv::String
const&)’ /usr/bin/ld: …/lib/libORB_SLAM3.so: undefined reference to
cv::Mat::Mat(int, int, int)’ /usr/bin/ld: …/lib/libORB_SLAM3.so:
undefined reference to cv::Mat::Mat(cv::Size
, int)’ /usr/bin/ld:
…/Thirdparty/fastdeploy-linux-x64-1.0.4/lib/libfastdeploy.so:
undefined reference to cv::polylines(cv::Mat&, cv::Point
const*
const*, int const*, int, bool, cv::Scalar
const&, int, int,
int)’ /usr/bin/ld: …/lib/libORB_SLAM3.so: undefined reference to
cv::Mat::total() const’ /usr/bin/ld: …/lib/libORB_SLAM3.so: undefined
reference to cv::Mat::step1(int) const’ /usr/bin/ld:
…/lib/libORB_SLAM3.so: undefined reference to cv::imshow(cv::String
const&, cv::_InputArray const&)’ /usr/bin/ld:
…/Thirdparty/fastdeploy-linux-x64-1.0.4/lib/libfastdeploy.so:
undefined reference to cv::imwrite(cv::String const&, cv::_InputArray
const&, std::vector<int, std::allocator > const&)’ collect2:
error: ld returned 1 exit status make[2]: ***
[CMakeFiles/rgbd_tum.dir/build.make:133:…/Examples/RGB-D/rgbd_tum] 错误
1 make[1]: *** [CMakeFiles/Makefile2:99:CMakeFiles/rgbd_tum.dir/all]
错误 2 make: *** [Makefile:84:all] 错误 2

因为跑上一个项目我用的是OpenCv4.2的版本,所以更新了一些库,这里造成部分库缺失
所以只需要将OpenCv换成3.4.5版本即可,但是重新卸载OpenCv太过麻烦,所以我们可以安装多个版本的OpenCv。
跑不同项目切换不同版本即可!!
链接: OpenCv多版本共存的安装路径与切换使用

还要注意CMakeLists中的版本!!

1.3 错误3

在这里插入图片描述

./Examples/RGB-D/rgbd_tum: error while loading shared libraries: libonnxruntime.so.1.12.0: cannot open shared object file: No such file or directory

解决方法:
执行 source /path/to/fastdeploy-linux-xxx/fastdeploy_init.sh

source /home/lvslam/ORB3-YOLO8/Thirdparty/fastdeploy-linux-x64-1.0.4/fastdeploy_init.sh 

1.4 错误4

执行命令

./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM1.yaml /home/lvslam/ORB3-YOLO8/evaluation/rgbd_dataset_freiburg3_walking_xyz /home/lvslam/ORB3-YOLO8/evaluation/rgbd_dataset_freiburg3_walking_xyz/associations.txt cpu

在这里插入图片描述
这是找不到文件,我们需要在当前目录下建立一个model文件夹,然后把yolov8n.onnx放进去就可以了!
在这里插入图片描述
至此我们就又成功复现一个项目!

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

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

相关文章

Feature Alignment and Uniformity for Test Time Adaptation--论文笔记

论文笔记 资料 1.代码地址 https://github.com/SakurajimaMaiii/TSD 2.论文地址 https://arxiv.org/abs/2303.10902 3.数据集地址 论文摘要的翻译 TTA在接收训练分布外的测试域样本时对深度神经网络进行自适应。在这样设置下&#xff0c;模型只能访问在线未标记的测试样…

昇思MindSpore学习总结十五 ——基于Mindspore 实现BERT对话情绪识别

1、环境配置 根据实际情况&#xff0c;选择合适版本。 %%capture captured_output # 实验环境已经预装了mindspore2.2.14&#xff0c;如需更换mindspore版本&#xff0c;可更改下面mindspore的版本号 !pip uninstall mindspore -y !pip install -i https://pypi.mirrors.ustc…

MYSQL--第七次作业

MYSQL–第七次作业 在product表上创建三个触发器。每次激活触发器后&#xff0c;都会更新operate表。product表和表的内容如下 Product表内容 字段名 字段描述 数据类型 主键 外键 非空 唯一 自增 Id 产品编号 Int(10) 是 否 是 是 否 Name …

torch之从.datasets.CIFAR10解压出训练与测试图片 (附带网盘链接)

前言 从官网上下载的是长这个样子的 想看图片&#xff0c;咋办咧&#xff0c;看下面代码 import torch import torchvision import numpy as np import os import cv2 batch_size 50transform_predict torchvision.transforms.Compose([torchvision.transforms.ToTensor(),…

echarts解决数据差异过大的问题

问题描述 使用echarts折线图和柱状图展示数据时&#xff0c;如果数据差异值较大&#xff0c;会导致显示图形差异过大&#xff0c;图表不美观。 如这一组数据[2000000, 200, 0.1, 20, 0, -10, -3000]&#xff0c;渲染出来的效果如下图&#xff1a; 可以看到由于最大值和最小值差…

几何距离与函数距离:解锁数据空间中的奥秘

几何距离&#xff1a;直观的空间度量 几何距离&#xff0c;顾名思义&#xff0c;是我们在几何学中熟悉的距离概念&#xff0c;如欧几里得距离、曼哈顿距离和切比雪夫距离等。这些距离度量直接反映了数据点在多维空间中的位置关系。 欧几里得距离&#xff1a;最为人熟知的几何距…

(四)stm32之通信协议

一.串口通信 1、全双工、半双工、单工 单工:只能一个人传输,只能向一个方向传输 半双工:只能一个人传输,可以多个方向传输 全双工:多方传输,多个方向传输 2、同步通信、一步通信 异步通信:双方时钟可以不同步,发送的信息封装(加上起始位、停止位)实现同步,效率低,…

【全网最全】2024年辽宁省大学生数学建模竞赛完整思路解析+代码+论文

我是Tina表姐&#xff0c;毕业于中国人民大学&#xff0c;对数学建模的热爱让我在这一领域深耕多年。我的建模思路已经帮助了百余位学习者和参赛者在数学建模的道路上取得了显著的进步和成就。现在&#xff0c;我将这份宝贵的经验和知识凝练成一份全面的解题思路与代码论文集合…

Vue和Element UI 路由跳转,侧边导航的路由跳转,侧边栏拖拽

首先看布局&#xff0c;因为我的用于页面显示的 <router-view> 是通过重定向定位到登陆页的&#xff0c;然后通过登陆页跳转到主页。项目中用到了点击侧边栏的跳转&#xff0c;所以记录下来&#xff0c;方便有需要的人用到~ 阐述 &#xff08;1&#xff09;.content{ di…

26.7 Django单表操作

1. 模型管理器 1.1 Manager管理器 Django ORM中, 每个Django模型(Model)至少有一个管理器, 默认的管理器名称为objects. objects是一个非常重要的管理器(Manager)实例, 它提供了与数据库进行交互的接口.通过管理器, 可以执行数据库查询, 保存对象到数据库等操作.objects管理器…

【Unity学习笔记】第十九 · 物理引擎约束求解解惑(LCP,最优,拉格朗日乘数法,SI,PGS,基于冲量法)

转载请注明出处: https://blog.csdn.net/weixin_44013533/article/details/140309494 作者&#xff1a;CSDN|Ringleader| 在学习物理引擎过程中&#xff0c;有几大问题一直困扰着我&#xff1a; 约束求解到底是LCP还是带约束最优问题&#xff1f;约束求解过程中拉格朗日乘数法…

SpringBoot整合JWT示例教程

1. JWT简介 JSON Web Token (JWT) 是一种开放标准&#xff08;RFC 7519&#xff09;&#xff0c;它定义了一种紧凑且自包含的方式&#xff0c;用于在各方之间作为 JSON 对象安全地传输信息。由于这些信息是经过数字签名的&#xff0c;因此可以被验证和信任。JWT 通常用于身份验…

openharmony上传图片,并获取返回路径

适用条件&#xff1a; openharmony开发 4.0 release版本&#xff0c;对应能力API10 一直不断尝试&#xff0c;一会用官方提供的上传文件&#xff0c;一会用第三方库的axios都不行&#xff0c; 一会报错‘没权限&#xff0c;一会报错’路径错误&#xff0c;还有报错‘401参数错…

本地部署,去除动漫图像背景Anime Remove Background

目录 摘要 引言 深度学习在动漫角色中的应用 1.​U-Net 2.Mask R-CNN 3.ISNet 模型 4.MODNet 模型 5.InSPyReNet 模型 本地部署 运行效果 测验结果​ Tip&#xff1a; 摘要 动漫图像背景去除是一项在图像处理和计算机视觉领域具有重要应用的技术&#xff0c;广泛应用于…

奇舞周刊第533期:单点登录(SSO)实现详解

奇舞推荐 ■ ■ ■ 单点登录&#xff08;SSO&#xff09;实现详解&#xff01;&#xff01; 单点登录是什么&#xff1f;你是怎么理解的&#xff1f;单点登录是如何实现的。 纯前端怎么实现检测版本更新&#xff0c;请看这篇&#xff01; 在传统的多页Web应用中&#xff0c;每次…

CSS实现table表格:隔行换色的效果

表格是网页中十分重要的组成元素。表格用来存储数据&#xff0c;包含标题、表头、行和单元格。在HTML语言中&#xff0c;表格标记使用符号<table>表示。定义表格光使用<table>是不够的&#xff0c;还需要定义表格中的行、列、标题等内容。推荐博文&#xff1a;《HT…

Mac M1安装配置Hadoop+Flink SQL环境

Flink 1.18.1 Hadoop 3.4.0 一、准备工作 系统&#xff1a;Mac M1 (MacOS Sonoma 14.3.1) JDK&#xff1a;jdk1.8.0_381 &#xff08;注意&#xff1a;尽量一定要用JDK8&#xff0c;少用高版本&#xff09; Scala&#xff1a;2.12 JDK安装在本机的/opt/jdk1.8.0_381.jdk/C…

Uniapp鸿蒙项目实战

Uniapp鸿蒙项目实战 24.7.6 Dcloud发布了uniapp兼容鸿蒙的文档&#xff1a;Uniapp开发鸿蒙应用 在实际使用中发现一些问题&#xff0c;开贴记录一下 设备准备 windows电脑准备&#xff08;家庭版不行&#xff0c;教育版、企业版、专业版也可以&#xff0c;不像uniapp说的只有…

html5——CSS3_文本样式属性

目录 字体样式 字体类型 字体大小 字体风格 字体的粗细 文本样式 文本颜色 排版文本段落 文本修饰和垂直对齐 文本阴影 字体样式 字体类型 p{font-family:Verdana,"楷体";} body{font-family: Times,"Times New Roman", "楷体";} …

html5——CSS高级选择器

目录 属性选择器 E[att^"value"] E[att$"http"] E[att*"http"] 关系选择器 子代&#xff1a; 相邻兄弟&#xff1a; 普通兄弟&#xff1a; 结构伪类选择器 链接伪类选择器 伪元素选择器 CSS的继承与层叠 CSS的继承性 CSS的层叠性 …