Ubuntu20.04安装Pangolin遇到的几种报错的解决方案

news2025/4/23 3:52:42

1.添加两个编译选项

/usr/include/OpenEXR/half.h:121:13: note: because ‘half’ has user-provided ‘half& half::operator=(half)’
  121 |     half &  operator = (half  h);
      |             ^~~~~~~~

解决方案:
在CMakeList中添加以下两句:
 

set_property(TARGET ${COMPONENT} PROPERTY CXX_STANDARD 11)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-copy -Wno-error=deprecated-copy")

完整CMakeList.txt的如下:
 

cmake_minimum_required(VERSION 3.16)

project("Pangolin")
set(PANGOLIN_VERSION_MAJOR 0)
set(PANGOLIN_VERSION_MINOR 9)
set(PANGOLIN_VERSION_PATCH 3)
set_property(TARGET ${COMPONENT} PROPERTY CXX_STANDARD 11)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-copy -Wno-error=deprecated-copy")
set(PANGOLIN_VERSION ${PANGOLIN_VERSION_MAJOR}.${PANGOLIN_VERSION_MINOR}.${PANGOLIN_VERSION_PATCH})

if(NOT CMAKE_CXX_STANDARD)
    set(CMAKE_CXX_STANDARD 17)
    set(CMAKE_CXX_STANDARD_REQUIRED ON)
endif()

# Prevent in source builds
if(EXISTS "${PROJECT_BINARY_DIR}/CMakeLists.txt")
    message(FATAL_ERROR "Source build detected: please use a subdir. You may remove 'CMakeCache.txt' and 'CMakeFiles'.")
endif()

# Make our own cmake imports accessible
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")

set(CMAKE_POSITION_INDEPENDENT_CODE ON)
SET(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)

include(SetPlatformVars)
include(PangolinFactory)

option( BUILD_TOOLS "Build Tools" ON )
option( BUILD_EXAMPLES "Build Examples" ON )
option( BUILD_ASAN "Enable AddressSanitizer for Debug builds" OFF )

# Default build type (Override with cmake .. -DCMAKE_BUILD_TYPE=...)
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
  set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build." FORCE)
  message(STATUS "Setting build type to '${CMAKE_BUILD_TYPE}' as none was specified.")
  set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
endif()

option( BUILD_SHARED_LIBS "Build Shared Library" ON)

if(_WIN_)
    option( MSVC_USE_STATIC_CRT  "Use static C Runtime with MSVC, /MT instead of /MD" ON)

    # Make sure there are no erroneous C Runtime flags
    list(APPEND FLAG_VARS
        CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO
        CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO
    )
    if(MSVC_USE_STATIC_CRT)
        foreach(FLAG_VAR ${FLAG_VARS})
            string(REGEX REPLACE "/MD" "/MT" NEW_FLAGS "${${FLAG_VAR}}")
            set(${FLAG_VAR} "${NEW_FLAGS}" CACHE STRING "" FORCE)
        endforeach()
    else()
        foreach(FLAG_VAR ${FLAG_VARS})
            string(REGEX REPLACE "/MT" "/MD" NEW_FLAGS "${${FLAG_VAR}}")
            set(${FLAG_VAR} "${NEW_FLAGS}" CACHE STRING "" FORCE)
        endforeach()
    endif()
elseif(_OSX_)
    set(CMAKE_MACOSX_RPATH ON)
elseif(EMSCRIPTEN)
    set(BUILD_SHARED_LIBS OFF)
    include(EmscriptenUtils)
    set(CMAKE_EXE_LINKER_FLAGS "-sASYNCIFY=1 -sDISABLE_EXCEPTION_CATCHING=0 -sGL_ASSERTIONS=1 -sFULL_ES3=1 --bind")
endif()

# run with "ASAN_OPTIONS=fast_unwind_on_malloc=0" to print stack with more details
if(BUILD_ASAN)
    set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} \
        -fsanitize=address \
        -fsanitize=bool \
        -fsanitize=bounds \
        -fsanitize=enum \
        -fsanitize=float-cast-overflow \
        -fsanitize=float-divide-by-zero \
        -fsanitize=nonnull-attribute \
        -fsanitize=returns-nonnull-attribute \
        -fsanitize=signed-integer-overflow \
        -fsanitize=undefined \
        -fsanitize=vla-bound \
        -fno-sanitize=alignment \
        -fsanitize=leak \
        -fsanitize=object-size \
    ")
endif()

if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang")
    add_compile_options(-Wall -Wextra -Werror)
    # error: ISO C++ prohibits anonymous structs
    # add_compile_options(-Wpedantic)
    # ignore "parentheses" warning for custom "picojson" fork
    add_compile_options(-Wno-parentheses)
    add_compile_options(-Wno-null-pointer-arithmetic)
    add_compile_options(-Wno-null-pointer-subtraction)
    if(CMAKE_COMPILER_IS_GNUCC)
        add_compile_options(-Werror=maybe-uninitialized)
    endif()
endif()

#######################################################
## Testing setup

option(BUILD_TESTS "Build Tests" OFF)
if(BUILD_TESTS)
    find_package(Catch2 REQUIRED)
    include(CTest)
    include(Catch)
endif()

#######################################################
## Add all pangolin components

file(GLOB components_cmake "${CMAKE_CURRENT_LIST_DIR}/components/*/CMakeLists.txt")
set(component_list "")
foreach(component_cmake ${components_cmake})
    get_filename_component(component_dir ${component_cmake} DIRECTORY)
    get_filename_component(component_name ${component_dir} NAME)
    add_library(${component_name} "")
    list(APPEND component_list ${component_name})
endforeach()

foreach(component_cmake ${components_cmake})
    include(${component_cmake})
endforeach()

#######################################################
## Build Tree Export

# Export Targets
export(TARGETS ${component_list} FILE PangolinTargets.cmake)
export(PACKAGE Pangolin)

# Version information
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/${PROJECT_NAME}ConfigVersion.cmake.in
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake" @ONLY)

# Build tree config
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/${PROJECT_NAME}Config.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake @ONLY IMMEDIATE )


#######################################################
## Install headers / targets

include(GNUInstallDirs)
# This relative path allows installed files to be relocatable.
set( CMAKECONFIG_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} )
file( RELATIVE_PATH REL_INCLUDE_DIR
    "${CMAKE_INSTALL_PREFIX}/${CMAKECONFIG_INSTALL_DIR}"
    "${CMAKE_INSTALL_PREFIX}/include"
)

install(
    TARGETS ${component_list}
    EXPORT ${PROJECT_NAME}Targets
    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
    INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
)

install(
    FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
          "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake"
    DESTINATION ${CMAKECONFIG_INSTALL_DIR}
)
install(
    EXPORT ${PROJECT_NAME}Targets DESTINATION ${CMAKECONFIG_INSTALL_DIR}
)

# uninstall target
if(NOT TARGET uninstall)
  configure_file(
    "${CMAKE_CURRENT_LIST_DIR}/cmake/cmake_uninstall.cmake.in"
    "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
    IMMEDIATE @ONLY)

  add_custom_target(uninstall
    COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)
endif()


#######################################################
## Tools / Examples

set(Pangolin_DIR ${CMAKE_CURRENT_BINARY_DIR})

if(BUILD_EXAMPLES)
    add_subdirectory(examples)
endif()

if(BUILD_TOOLS)
    add_subdirectory(tools)
endif()

2.修改C++版本:
 

/home/and/work/lidar2camera/manual_calib/Pangolin/components/pango_opengl/src/glfont.cpp:125:26: error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]
  125 |     vsnprintf(result.data(), len+1, format, args);
      |               ~~~~~~~~~~~^~
      |                          |
      |                          const char*


/usr/include/x86_64-linux-gnu/bits/stdio2.h:77:1: note:   initializing argument 1 of ‘int vsnprintf(char*, size_t, const char*, __va_list_tag*)’
   77 | __NTH (vsnprintf (char *__restrict __s, size_t __n,
      | ^~~~~


/home/and/work/lidar2camera/manual_calib/Pangolin/components/pango_opengl/src/glfont.cpp:197:22: error: ‘class std::map<unsigned int, pangolin::GlChar>’ has no member named ‘try_emplace’; did you mean ‘emplace’?
  197 |             chardata.try_emplace(codepoint, tex_w,tex_h, x, y, gw, gh, scale*advance, x0 -0.5f, -y0 -0.5f);
      |                      ^~~~~~~~~~~
      |                      emplace
At global scope:

解决方法:
 

set(CMAKE_CXX_STANDARD 11) 改为set(CMAKE_CXX_STANDARD 17)

3.设置全局变量
 

/home/and/work/lidar2camera/manual_calib/Pangolin/components/pango_python/src/pyinterpreter.cpp:61:27: error: ‘py::module_’ has not been declared
   61 |     auto pypangolin = py::module_::import("pypangolin");
      |                           ^~~~~~~
/home/and/work/lidar2camera/manual_calib/Pangolin/components/pango_python/src/pyinterpreter.cpp:63:20: error: ‘py::module_’ has not been declared
   63 |     auto sys = py::module_::import("sys");
      |                    ^~~~~~~
At global scope:

解决方法:
 

sudo pip3 install "pybind11[global]"

4.修改install_prerequisites.sh文件
 

E: 无法定位软件包 catch2

这个包是22.04的中用来测试的,20.04里没有,在install_prerequisites.sh文件中删除就好,下面提供一个删除后完整的install_prerequisites.sh文件:

#!/bin/bash

# exit when any command fails
set -e

MANAGERS=(dnf apt port vcpkg brew pacman)
MANAGER=""
LIST=0
VERBOSE=0
DRYRUN=0
UPDATE=0
REQUIRED_RECOMMENDED_ALL=1
SUDO=""

PKGS_UPDATE=""
PKGS_REQUIRED=()
PKGS_RECOMMENDED=()
PKGS_ALL=()
PKGS_OPTIONS=()

# Parse Command line
PARAMS=""
while (( "$#" )); do
  case "$1" in
    -v|--verbose)
      VERBOSE=1
      shift
      ;;
    -d|--dry-run)
      DRYRUN=1
      shift
      ;;
    -l|--list)
      LIST=1
      shift
      ;;
    -u|--update-package-list)
      UPDATE=1
      shift
      ;;
    -m|--package-manager)
      if [ -n "$2" ] && [ ${2:0:1} != "-" ]; then
        MANAGER=($2)
        shift 2
      else
        echo "Error: Argument for $1 is missing" >&2
        exit 1
      fi
      ;;
    -h|--help)
      echo "$0 [-vh] [-m package-manager-list] [required|recommended|all]"
      echo "  -m, --package-manager:     preferred package manager order (default: \"${MANAGERS[*]}\")"
      echo "  -v, --verbose:             verbose output"
      echo "  -d, --dry-run:             print actions, but do not execute"
      echo "  -l, --list:                just list the packages to install"
      echo "  -u, --update-package-list: update package manager package list"
      echo "  -h, --help:                this help message"
      echo " (required|recommended|all) the set of dependencies to select."
      exit 0
      ;;
    -*|--*=) # unsupported flags
      echo "Error: Unsupported flag $1" >&2
      exit 1
      ;;
    *) # preserve positional arguments
      PARAMS="$1"
      shift
      ;;
  esac
done

# Make lower case
PARAMS=$(echo "$PARAMS" | tr '[:upper:]' '[:lower:]' | tr -s "[:blank:]")

# Work out which set of dependencies we're installing
case "$PARAMS" in
  required)
    REQUIRED_RECOMMENDED_ALL=0
    if ((VERBOSE > 0)); then echo "Selecting required dependencies only."; fi
    ;;
  ""|recommended)
    REQUIRED_RECOMMENDED_ALL=1
    if ((VERBOSE > 0)); then echo "Selecting required+recommended dependencies."; fi
    ;;
  all)
    REQUIRED_RECOMMENDED_ALL=2
    if ((VERBOSE > 0)); then echo "Selecting all available dependencies."; fi
    ;;
  *)
    echo "Unrecognized positional argument \"$PARAMS\". Expecting one of (required,recommended [default],all)"
    exit 1
    ;;
esac

# Find an available package manager from the preferred list
# if one has not already been selected manually.
if [ -z "$MANAGER" ]
then
  for m in ${MANAGERS[@]}
  do
      if [ -x "$(command -v $m)" ]; then
          MANAGER="$m"
          break
      fi
  done
fi

# If no package manager is found, exit
if [ -z "$MANAGER" ]
then
      echo "Error: No preferred package managers from list [${MANAGERS[*]}] found. Use -m to select manually." >&2
      exit 1
fi
if ((VERBOSE > 0)); then echo "Using \"$MANAGER\" package manager (select another using -m)"; fi

# Setup prereq commands and packages.
if [[ "$MANAGER" == "apt" ]]; then
    SUDO="sudo"
    PKGS_UPDATE="apt update"
    PKGS_OPTIONS+=(install --no-install-suggests --no-install-recommends)
    if ((DRYRUN > 0));  then PKGS_OPTIONS+=(--dry-run); SUDO=""; fi
    PKGS_REQUIRED+=(libgl1-mesa-dev libwayland-dev libxkbcommon-dev wayland-protocols libegl1-mesa-dev)
    PKGS_REQUIRED+=(libc++-dev libepoxy-dev libglew-dev libeigen3-dev cmake g++ ninja-build)
    PKGS_RECOMMENDED+=(libjpeg-dev libpng-dev)
    PKGS_RECOMMENDED+=(libavcodec-dev libavutil-dev libavformat-dev libswscale-dev libavdevice-dev)
    PKGS_ALL+=(libdc1394-dev libraw1394-dev libopenni-dev python3-dev)
elif [[ "$MANAGER" == "dnf" ]]; then
    SUDO="sudo"
    PKGS_UPDATE="dnf check-update"
    PKGS_OPTIONS+=(install)
    PKGS_REQUIRED+=(wayland-devel libxkbcommon-devel g++ ninja-build)
    PKGS_REQUIRED+=(epoxy-devel eigen3 cmake)
    PKGS_RECOMMENDED+=(libjpeg-devel libpng-devel OpenEXR-devel )
    PKGS_ALL+=(libdc1394-devel libraw1394-devel librealsense-devel openni-devel)
    if ((DRYRUN > 0));  then
        MANAGER="echo $MANAGER"
        SUDO=""
    fi
elif [[ "$MANAGER" == "pacman" ]]; then
    SUDO="sudo"
    PKGS_UPDATE=""  # databases and packages are updated in -Syu install options
    PKGS_OPTIONS+=(-Syu --needed)
    PKGS_REQUIRED+=(mesa wayland libxkbcommon wayland-protocols libc++ glew eigen cmake gcc ninja)
    PKGS_RECOMMENDED+=(libjpeg-turbo libpng ffmpeg)
    PKGS_ALL+=(libdc1394 libraw1394 openni python3)
    if ((DRYRUN > 0));  then
        MANAGER="echo $MANAGER"
        SUDO=""
    fi
elif [[ "$MANAGER" == "port" ]]; then
    SUDO="sudo"
    PKGS_UPDATE="port sync -q"
    if ((DRYRUN > 0));  then PKGS_OPTIONS+=(-y); SUDO=""; fi
    PKGS_OPTIONS+=(-N install -q)
    PKGS_REQUIRED+=(glew eigen3-devel cmake +gui ninja)
    PKGS_RECOMMENDED+=(libjpeg-turbo libpng openexr tiff ffmpeg-devel lz4 zstd py37-pybind11 )
    PKGS_ALL+=(libdc1394 openni)
elif [[ "$MANAGER" == "brew" ]]; then
    PKGS_OPTIONS+=(install)
    if ((VERBOSE > 0)); then PKGS_OPTIONS+=(--verbose); fi
    PKGS_REQUIRED+=(glew eigen cmake ninja)
    PKGS_RECOMMENDED+=(libjpeg-turbo libpng openexr libtiff ffmpeg lz4 zstd  python-setuptools)
    # Brew doesn't have a dryrun option
    if ((DRYRUN > 0));  then
        MANAGER="echo $MANAGER"
    fi
elif [[ "$MANAGER" == "vcpkg" ]]; then
    # TODO: this should be a config option somehow...
    PKGS_OPTIONS+=(install --triplet=x64-windows )
    if ((DRYRUN > 0));  then PKGS_OPTIONS+=(--dry-run); fi
    PKGS_REQUIRED+=(glew eigen3 vcpkg-tool-ninja)
    PKGS_RECOMMENDED+=(libjpeg-turbo libpng openexr tiff ffmpeg lz4 zstd python3 )
    PKGS_ALL+=(openni2 realsense2)
else
    echo "Error: Don't know how to use \"$MANAGER\", please fix the script." >&2
    exit 1
fi

if ((REQUIRED_RECOMMENDED_ALL < 2)); then PKGS_ALL=(); fi
if ((REQUIRED_RECOMMENDED_ALL < 1)); then PKGS_RECOMMENDED=(); fi

PACKAGES=( "${PKGS_REQUIRED[*]}" "${PKGS_RECOMMENDED[*]}" "${PKGS_ALL[*]}" )

if ((LIST > 0)); then
    echo "${PACKAGES[*]}"
    exit 0
fi

if ((UPDATE > 0)); then
    if ((VERBOSE > 0)); then echo "Requesting \"$MANAGER\" package update."; fi
    $SUDO $PKGS_UPDATE
fi

if ((VERBOSE > 0)); then echo "Requesting install of: ${PACKAGES[*]}"; fi

# Install
$SUDO $MANAGER ${PKGS_OPTIONS[*]} ${PACKAGES[*]}


 

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

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

相关文章

深度学习方向急出成果,是先广泛调研还是边做实验边优化?

目录 有限资源下本科生快速发表深度学习顶会论文的实战策略 1.短周期内可出成果的研究路径 2.论文阅读与复现的优先顺序 3.无一对一指导时的调研与实验组织 4.成功案例&#xff1a;本科生顶会论文经验 5.快速上手的研究子方向推荐 大家好这里是AIWritePaper官方账号&…

级联vs端到端、全双工、轮次检测、方言语种、商业模式…语音 AI 开发者都在关心什么?丨Voice Agent 学习笔记

编者按&#xff1a; A16Z在《AI Voice Agents: 2025 Update》中提到&#xff1a; 语音是 AI 应用公司最强大的突破之一。 它是人类沟通中最频繁&#xff08;也是信息密度最高的&#xff09;形式&#xff0c;AI 也让其首次变得“可编程”。 在13期Z沙龙&#xff0c;我们聚焦AI…

阿里云镜像加速仅支持阿里云产品了

最近在拉取docker镜像时一直报超时的错误&#xff1a; docker pull hello-world Using default tag: latest Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exce…

05--MQTT物联网协议

一、MQTT的概念 MQTT 协议快速入门 2025&#xff1a;基础知识和实用教程 | EMQ 1.MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;是一种轻量级、基于发布-订阅模式的消息传输协议&#xff0c;适用于资源受限的设备和低带宽、高延迟或不稳定的网络环境。它…

学习设计模式《二》——外观模式

一、基础概念 1.1、外观模式的简介 外观模式的本质是【封装交互、简化调用】&#xff1b; 外观模式的说明&#xff1a;就是通过引入一个外观类&#xff0c;在这个类里面定义客户端想要的简单方法&#xff0c;然后在这些方法里面实现&#xff1b;由外观类再去分别调用内部的多个…

永磁同步电机控制算法-VF控制

一、原理介绍 V/F 控制又称为恒压频比控制,给定VF 控制曲线 电压是频率的tt例函数 即控制电压跟随频率变化而变化以保持磁通恒定不变。 二、仿真模型 在MATLAB/simulink里面验证所提算法&#xff0c;搭建仿真。采用和实验中一致的控制周期1e-4&#xff0c;电机部分计算周期为…

qt 配置 mysql 驱动问题:Cannot load library qsqlmysql;QMYSQL driver not loaded

项目场景&#xff1a; 环境版本&#xff1a; qt &#xff1a;5.14.2 mysql&#xff1a;8.0 windows&#xff1a;10 提示&#xff1a;qt 配置 mysql 驱动&#xff1a; 项目场景&#xff1a;qt 配置 mysql 驱动 问题描述 提示&#xff1a;这里描述项目中遇到的问题&#xff1a;…

线性代数 | 知识点整理 Ref 2

注&#xff1a;本文为 “线性代数 | 知识点整理” 相关文章合辑。 因 csdn 篇幅合并超限分篇连载&#xff0c;本篇为 Ref 2。 略作重排&#xff0c;未整理去重。 图片清晰度限于引文原状。 如有内容异常&#xff0c;请看原文。 【数学】线性代数知识点总结 阿巴 Jun 于 2024-…

华为OD机试真题——最小的调整次数/特异性双端队列(2025A卷:100分)Java/python/JavaScript/C++/C语言/GO六种最佳实现

2025 A卷 100分 题型 本文涵盖详细的问题分析、解题思路、代码实现、代码详解、测试用例以及综合分析&#xff1b; 并提供Java、python、JavaScript、C、C语言、GO六种语言的最佳实现方式&#xff01; 2025华为OD真题目录全流程解析/备考攻略/经验分享 华为OD机试真题《最小的调…

Flink-01学习 介绍Flink及上手小项目之词频统计

flink简介 官网 概述&#xff1a; 学习Flink具体包括四个关键概念&#xff1a;流数据的持续处理&#xff0c;事件时间&#xff0c;有状态流处理和状态快照。 Apache Flink 是一个开源的流处理框架&#xff0c;旨在处理批处理和实时数据处理&#xff0c;具有高吞吐量和低延迟的…

目标检测篇---R-CNN梳理

目标检测系列文章 第一章 R-CNN 目录 目标检测系列文章&#x1f4c4; 论文标题&#x1f9e0; 论文逻辑梳理1. 引言部分梳理 (动机与思想) &#x1f4dd; 三句话总结&#x1f50d; 方法逻辑梳理&#x1f680; 关键创新点&#x1f517; 方法流程图补充边界框回归 (BBR)1. BBR 的…

C#处理网络传输中不完整的数据流

1、背景 在读取byte数组的场景&#xff08;例如&#xff1a;读取文件、网络传输数据&#xff09;中&#xff0c;特别是网络传输的场景中&#xff0c;非常有可能接收了不完整的byte数组&#xff0c;在将byte数组转换时&#xff0c;因字符的缺失/增多&#xff0c;转为乱码。如下…

HTML 初识

段落标签 <p><!-- 段落标签 -->Lorem ipsum dolor sit amet consectetur adipisicing elit. Fugiat, voluptate iure. Obcaecati explicabo sint ipsum impedit! Dolorum omnis voluptas sint unde sed, ipsa molestiae quo sapiente quos et ad reprehenderit.&l…

MATLAB 训练CNN模型 yolo v4

学生对小车控制提出了更好的要求&#xff0c;能否加入深度学习模型。 考虑到小车用matlab来做&#xff0c;yolo v5及以上版本都需要在pytorch下训练&#xff0c;还是用早期版本来演示。 1 yolov4 调用 参考 trainYOLOv4ObjectDetector (mathworks.com) name "tiny-yo…

【前端】跟着maxkb学习logicflow流程图画法

文章目录 背景1. 选定学习对象-maxkb应用逻辑编排2. 确定实现框架3. 关键逻辑&#xff1a;查看app-node.js4. 学习开始节点绘制流程数据形式 5. 给节点增加表单输入框遇到过的问题 背景 看看前端如何绘制流程图&#xff0c;界面好看点。 "logicflow/core": "1.…

【漏洞复现】CVE-2024-38856(ApacheOfbiz RCE)

【漏洞复现】CVE-2024-38856&#xff08;ApacheOfbiz RCE&#xff09; 1. 漏洞描述 Apache OFBiz 是一个开源的企业资源规划&#xff08;ERP&#xff09;系统。它提供了一套企业应用程序&#xff0c;用于集成和自动化企业的许多业务流程。 这个漏洞是由于对 CVE-2023-51467 的…

超详细VMware虚拟机扩容磁盘容量-无坑版

1.环境&#xff1a; 虚拟机&#xff1a;VMware Workstation 17 Pro-17.5.2 Linux系统&#xff1a;Ubuntu 22.04 LTS 2.硬盘容量 虚拟机当前硬盘容量180G -> 扩展至 300G 3.操作步骤 &#xff08;1&#xff09;在虚拟机关机的状态下&#xff0c;虚拟机硬盘扩容之前必…

全面理解Linux 系统日志:核心文件与查看方法

全文目录 1 Linux 系统日志分类及功能1.1 通用日志1.1.1 ‌/var/log/messages1.1.2 ‌/var/log/syslog 1.2 安全相关日志1.2.1 ‌/var/log/auth.log‌&#xff08;Debian/Ubuntu&#xff09;或 ‌/var/log/secure‌&#xff08;RHEL/CentOS&#xff09;1.2.2 /var/log/audit/au…

机器学习-08-关联规则更新

总结 本系列是机器学习课程的系列课程&#xff0c;主要介绍机器学习中关联规则和协同过滤。 参考 机器学习&#xff08;三&#xff09;&#xff1a;Apriori算法&#xff08;算法精讲&#xff09; Apriori 算法 理论 重点 【手撕算法】【Apriori】关联规则Apriori原理、代码…

Flutter与FastAPI的OSS系统实现

作者&#xff1a;孙嘉成 目录 一、对象存储 二、FastAPI与对象存储 2.1 缤纷云S4服务API对接与鉴权实现 2.2 RESTful接口设计与异步路由优化 三、Flutter界面与数据交互开发 3.1 应用的创建 3.2页面的搭建 3.3 文件的上传 关键词&#xff1a;对象存储、FastAPI、Flutte…