在华为服务器上编译C++工程的若干错误以及排查方法和解决方法记录

目录

1 报错

2 查找错误原因

2.1 方法一:ldd命令

2.2 方法二:警告信息里面

3 解决错误

3.1 libpng16.so.16 和 libbrotlidec.so.1 问题

3.2 libdevmmap.so 和 libslog.so库问题

3.3 剩余错误

3.3.1 libacllite.so错误解决

3.3.2 libtaclstream_va.so.1.0.0错误解决


1 报错

编译某个项目的C++代码时提示

/usr/bin/ld: warning: libpng16.so.16, needed by /opt/chw/aclstream/3rdparty/freetype/lib/linux_lib/libfreetype.so.6, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libbrotlidec.so.1, needed by /opt/chw/aclstream/3rdparty/freetype/lib/linux_lib/libfreetype.so.6, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libdevmmap.so, needed by /opt/chw/aclstream/3rdparty/ascend/lib/linux_lib/libascend_hal.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libslog.so, needed by /opt/chw/aclstream/3rdparty/ascend/lib/linux_lib/libascend_hal.so, not found (try using -rpath or -rpath-link)
/opt/chw/aclstream/3rdparty/freetype/lib/linux_lib/libfreetype.so.6: undefined reference to `png_set_interlace_handling@PNG16_0'
/opt/chw/aclstream/3rdparty/freetype/lib/linux_lib/libfreetype.so.6: undefined reference to `png_get_io_ptr@PNG16_0'
/opt/chw/aclstream/3rdparty/freetype/lib/linux_lib/libfreetype.so.6: undefined reference to `png_set_longjmp_fn@PNG16_0'
/opt/chw/aclstream/3rdparty/ascend/lib/linux_lib/libascend_hal.so: undefined reference to `MapGetInRange'
/opt/chw/aclstream/3rdparty/ascend/lib/linux_lib/libascend_hal.so: undefined reference to `DlogErrorInner'
/opt/chw/aclstream/3rdparty/freetype/lib/linux_lib/libfreetype.so.6: undefined reference to `png_set_palette_to_rgb@PNG16_0'
../../lib/libtaclstream_va.so.1.0.0: undefined reference to `__aarch64_cas8_sync'
/opt/chw/aclstream/3rdparty/freetype/lib/linux_lib/libfreetype.so.6: undefined reference to `BrotliDecoderDecompress'
/opt/chw/aclstream/3rdparty/ascend/lib/linux_lib/libacllite.so: undefined reference to `std::condition_variable::wait(std::unique_lock<std::mutex>&)@GLIBCXX_3.4.30'
/opt/chw/aclstream/3rdparty/freetype/lib/linux_lib/libfreetype.so.6: undefined reference to `png_set_packing@PNG16_0'
/opt/chw/aclstream/3rdparty/freetype/lib/linux_lib/libfreetype.so.6: undefined reference to `png_read_end@PNG16_0'
/opt/chw/aclstream/3rdparty/freetype/lib/linux_lib/libfreetype.so.6: undefined reference to `png_error@PNG16_0'
/opt/chw/aclstream/3rdparty/ascend/lib/linux_lib/libascend_hal.so: undefined reference to `DlogWarnInner'
/opt/chw/aclstream/3rdparty/freetype/lib/linux_lib/libfreetype.so.6: undefined reference to `png_set_strip_16@PNG16_0'
../../lib/libtaclstream_va.so.1.0.0: undefined reference to `__aarch64_ldadd4_sync'
../../lib/libtaclstream_va.so.1.0.0: undefined reference to `__aarch64_swp4_sync'
/opt/chw/aclstream/3rdparty/freetype/lib/linux_lib/libfreetype.so.6: undefined reference to `png_set_tRNS_to_alpha@PNG16_0'
/opt/chw/aclstream/3rdparty/freetype/lib/linux_lib/libfreetype.so.6: undefined reference to `png_set_filler@PNG16_0'
../../lib/libtaclstream_va.so.1.0.0: undefined reference to `__aarch64_swp8_sync'
/opt/chw/aclstream/3rdparty/ascend/lib/linux_lib/libacllite.so: undefined reference to `pthread_join@GLIBC_2.34'
/opt/chw/aclstream/3rdparty/ascend/lib/linux_lib/libascend_hal.so: undefined reference to `MapInsert'
/opt/chw/aclstream/3rdparty/freetype/lib/linux_lib/libfreetype.so.6: undefined reference to `png_read_update_info@PNG16_0'
/opt/chw/aclstream/3rdparty/freetype/lib/linux_lib/libfreetype.so.6: undefined reference to `png_read_info@PNG16_0'
../../lib/libtaclstream_va.so.1.0.0: undefined reference to `std::__throw_bad_array_new_length()'
/opt/chw/aclstream/3rdparty/ascend/lib/linux_lib/libascend_hal.so: undefined reference to `DlogInfoInner'
/opt/chw/aclstream/3rdparty/ascend/lib/linux_lib/libascend_hal.so: undefined reference to `CheckLogLevel'
../../lib/libtaclstream_va.so.1.0.0: undefined reference to `std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::basic_ostringstream()'
/opt/chw/aclstream/3rdparty/freetype/lib/linux_lib/libfreetype.so.6: undefined reference to `png_set_gray_to_rgb@PNG16_0'
/opt/chw/aclstream/3rdparty/freetype/lib/linux_lib/libfreetype.so.6: undefined reference to `png_set_read_user_transform_fn@PNG16_0'
/opt/chw/aclstream/3rdparty/freetype/lib/linux_lib/libfreetype.so.6: undefined reference to `png_get_valid@PNG16_0'
/opt/chw/aclstream/3rdparty/ascend/lib/linux_lib/libacllite.so: undefined reference to `stat64@GLIBC_2.33'
/opt/chw/aclstream/3rdparty/ascend/lib/linux_lib/libacllite.so: undefined reference to `pthread_create@GLIBC_2.34'
/opt/chw/aclstream/3rdparty/freetype/lib/linux_lib/libfreetype.so.6: undefined reference to `png_get_error_ptr@PNG16_0'
/opt/chw/aclstream/3rdparty/freetype/lib/linux_lib/libfreetype.so.6: undefined reference to `png_destroy_read_struct@PNG16_0'
/opt/chw/aclstream/3rdparty/ascend/lib/linux_lib/libacllite.so: undefined reference to `__libc_single_threaded@GLIBC_2.32'
../../lib/libtaclstream_va.so.1.0.0: undefined reference to `__aarch64_cas4_sync'
/opt/chw/aclstream/3rdparty/ascend/lib/linux_lib/libascend_hal.so: undefined reference to `MapErase'
/opt/chw/aclstream/3rdparty/freetype/lib/linux_lib/libfreetype.so.6: undefined reference to `png_set_read_fn@PNG16_0'
/opt/chw/aclstream/3rdparty/freetype/lib/linux_lib/libfreetype.so.6: undefined reference to `png_set_expand_gray_1_2_4_to_8@PNG16_0'
/opt/chw/aclstream/3rdparty/ascend/lib/linux_lib/libascend_hal.so: undefined reference to `DlogDebugInner'
/opt/chw/aclstream/3rdparty/freetype/lib/linux_lib/libfreetype.so.6: undefined reference to `png_create_read_struct@PNG16_0'
/opt/chw/aclstream/3rdparty/ascend/lib/linux_lib/libacllite.so: undefined reference to `std::__throw_bad_array_new_length()@GLIBCXX_3.4.29'
/opt/chw/aclstream/3rdparty/freetype/lib/linux_lib/libfreetype.so.6: undefined reference to `png_get_IHDR@PNG16_0'
/opt/chw/aclstream/3rdparty/freetype/lib/linux_lib/libfreetype.so.6: undefined reference to `png_create_info_struct@PNG16_0'
/opt/chw/aclstream/3rdparty/freetype/lib/linux_lib/libfreetype.so.6: undefined reference to `fstat@GLIBC_2.33'
/opt/chw/aclstream/3rdparty/freetype/lib/linux_lib/libfreetype.so.6: undefined reference to `png_read_image@PNG16_0'
/opt/chw/aclstream/3rdparty/ascend/lib/linux_lib/libascend_hal.so: undefined reference to `DlogEventInner'
collect2: error: ld returned 1 exit status
make[2]: *** [app/CMakeFiles/app.dir/build.make:587: ../app/bin/app] Error 1
make[2]: Leaving directory '/opt/chw/aclstream/build'
make[1]: *** [CMakeFiles/Makefile2:321: app/CMakeFiles/app.dir/all] Error 2
make[1]: Leaving directory '/opt/chw/aclstream/build'
make: *** [Makefile:130: all] Error 2

这种undefined reference的错误肯定是少了某个库,有两种方法去看缺少哪个库,

2 查找错误原因

2.1 方法一:ldd命令

2.2 方法二:警告信息里面

从上面的警告信息就能看到

/usr/bin/ld: warning: libpng16.so.16, needed by /opt/chw/aclstream/3rdparty/freetype/lib/linux_lib/libfreetype.so.6, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libbrotlidec.so.1, needed by /opt/chw/aclstream/3rdparty/freetype/lib/linux_lib/libfreetype.so.6, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libdevmmap.so, needed by /opt/chw/aclstream/3rdparty/ascend/lib/linux_lib/libascend_hal.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libslog.so, needed by /opt/chw/aclstream/3rdparty/ascend/lib/linux_lib/libascend_hal.so, not found (try using -rpath or -rpath-link)

所以这很明显是缺少这几个库。

3 解决错误

3.1 libpng16.so.16 和 libbrotlidec.so.1 问题

这两个库可以看到都是libfreetype.so.6需要的,这让我想起来之前盒子上的libfreetype.so.6库是新的,而现在我在ARM服务器上这个libfreetype.so.6应该用旧的,所以我搜了下,

所以现在用的是6.18.1链接成libfreetype.so.6的,我只需要把libfreetype.so.6.14.0_backup链接成libfreetype.so.6即可。这样做之后上面两个错误消失。

3.2 libdevmmap.so 和 libslog.so库问题

这两个库我在华为ARM服务器上搜,直接就没有任何东西

然后我去华为盒子上搜

我发现他们的路径是 /usr/local/Ascend/driver/lib64/libdevmmap.so。那我感觉应该是因为这个华为服务器没有安装最新的驱动。

然后我去下载个昇腾710的最新驱动试试(华为老版本的驱动固件把310P称为710,现在同一都
是310系列了,所以我现在下载310P的)。

社区版-固件与驱动-昇腾社区

然后用下面的命令安装驱动

Usage: ./Ascend-hdk-310p-npu-driver_23.0.rc3_linux-aarch64.run [options]
Options:--help | -h                       Print this message--info                            Print embedded info : title, default target directory, embedded script ...--list                            Print the list of files in the archive--check                           Checks integrity and version dependency of the archive--quiet                           Quiet install mode, skip human-computer interactions--nox11                           Do not spawn an xterm--noexec                          Do not run embedded script--extract=<path>                  Extract directly to a target directory (absolute or relative)Usually used with --noexec to just extract files without running--tar arg1 [arg2 ...]             Access the contents of the archive through the tar command--repack [package_name]           Build a precompiled kernel module for the currently running kernel and repackthe .run file. The new .run file will be renamed to package_name or appendthe string \"-custom\" to its name when package_name not present.--repack-path=<path> [package_name]   Build a precompiled kernel module for the currently running kernel frompath and repack the .run file. The new .run file will be renamed topackage_name or append the string \"-custom\" to its name whenpackage_name not present.--full                            Install full mode--run                             Install run mode--devel                           Install devel mode--docker                          Install docker mode--upgrade                         Upgrade product immediately--vnpu_guest                      Install vnpu_guest mode, eg: ./xxx.run --full/--run --vnpu_guest--install-path=<path>             Install to specific dir--install-username=<username>     Install to specific username--install-usergroup=<usergroup>   Install to specific usrgroup--uninstall                       Uninstall product--version                         Query the package version--install-for-all                 Install for all user--force                           Forcibly install, upgrade, or uninstall the package, and take effect after host restart
./Ascend-hdk-310p-npu-driver_23.0.rc3_linux-aarch64.run --full --force

驱动安装完之后需要重启才能生效。

 然后toolkit包我也直接重新下载

社区版资源下载-资源下载中心-昇腾社区

然后也重新安装

./Ascend-cann-toolkit_7.0.0.alpha003_linux-aarch64.run --full --force

3.3 剩余错误

../../lib/libtaclstream_va.so.1.0.0: undefined reference to `__aarch64_cas8_sync'
/opt/chw/aclstream/3rdparty/ascend/lib/linux_lib/libacllite.so: undefined reference to `std::condition_variable::wait(std::unique_lock<std::mutex>&)@GLIBCXX_3.4.30'
../../lib/libtaclstream_va.so.1.0.0: undefined reference to `__aarch64_ldadd4_sync'
../../lib/libtaclstream_va.so.1.0.0: undefined reference to `__aarch64_swp4_sync'
../../lib/libtaclstream_va.so.1.0.0: undefined reference to `__aarch64_swp8_sync'
/opt/chw/aclstream/3rdparty/ascend/lib/linux_lib/libacllite.so: undefined reference to `pthread_join@GLIBC_2.34'
../../lib/libtaclstream_va.so.1.0.0: undefined reference to `std::__throw_bad_array_new_length()'
../../lib/libtaclstream_va.so.1.0.0: undefined reference to `std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::basic_ostringstream()'
/opt/chw/aclstream/3rdparty/ascend/lib/linux_lib/libacllite.so: undefined reference to `stat64@GLIBC_2.33'
/opt/chw/aclstream/3rdparty/ascend/lib/linux_lib/libacllite.so: undefined reference to `pthread_create@GLIBC_2.34'
/opt/chw/aclstream/3rdparty/ascend/lib/linux_lib/libacllite.so: undefined reference to `__libc_single_threaded@GLIBC_2.32'
../../lib/libtaclstream_va.so.1.0.0: undefined reference to `__aarch64_cas4_sync'
/opt/chw/aclstream/3rdparty/ascend/lib/linux_lib/libacllite.so: undefined reference to `std::__throw_bad_array_new_length()@GLIBCXX_3.4.29'
collect2: error: ld returned 1 exit status
make[2]: *** [app/CMakeFiles/app.dir/build.make:587: ../app/bin/app] Error 1
make[2]: Leaving directory '/opt/chw/aclstream/build'
make[1]: *** [CMakeFiles/Makefile2:321: app/CMakeFiles/app.dir/all] Error 2
make[1]: Leaving directory '/opt/chw/aclstream/build'
make: *** [Makefile:130: all] Error 2

3.3.1 libacllite.so错误解决

这里面的这个库相关的报错,一看都是glibc相关的,那么感觉就是系统相关的,这让我想起来了这个库我没有重新编译,我用

ll /opt/chw/aclstream/3rdparty/ascend/lib/linux_lib/libacllite.so

看了下时间确实不对,那么这个库还是从华为盒子拷贝过来的版本,所以这里我去到/opt/chw/aclstream/3rdparty/ascend/acllite重新编译一下这个库,然后再次编译整个工程之后上面的libacllite.so相关的报错就没了。

3.3.2 libtaclstream_va.so.1.0.0错误解决

../../lib/libtaclstream_va.so.1.0.0: undefined reference to `__aarch64_cas8_sync'
../../lib/libtaclstream_va.so.1.0.0: undefined reference to `__aarch64_ldadd4_sync'
../../lib/libtaclstream_va.so.1.0.0: undefined reference to `__aarch64_swp4_sync'
../../lib/libtaclstream_va.so.1.0.0: undefined reference to `__aarch64_swp8_sync'
../../lib/libtaclstream_va.so.1.0.0: undefined reference to `std::__throw_bad_array_new_length()'
../../lib/libtaclstream_va.so.1.0.0: undefined reference to `std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::basic_ostringstream()'
../../lib/libtaclstream_va.so.1.0.0: undefined reference to `__aarch64_cas4_sync'
collect2: error: ld returned 1 exit status
make[2]: *** [app/CMakeFiles/app.dir/build.make:587: ../app/bin/app] Error 1
make[2]: Leaving directory '/opt/chw/aclstream/build'
make[1]: *** [CMakeFiles/Makefile2:321: app/CMakeFiles/app.dir/all] Error 2
make[1]: Leaving directory '/opt/chw/aclstream/build'
make: *** [Makefile:130: all] Error 2

我搜索undefined reference to `std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::basic_os找到

已解决: Re: icpx: error: linker command failed - Intel Community

然后按照他说的

sudo yum install libstdc++

然后报

我的centos上面的gcc最开始就是4.8.5的,然后我把gcc升级到了8.5.0,但是现在看libstdc++库并没有到8.5.0,还是老的,所以问题应该在这里。

cp /usr/local/lib64/libstdc++.so.6.0.25  /usr/lib64
cd /usr/lib64
ln -snf libstdc++.so.6.0.25 libstdc++.so.6

按照这个方法修改之后,问题依然存在,说明不是gcc版本的问题,然后这时候静下心来想一下,类似这种../../lib/libtaclstream_va.so.1.0.0: undefined reference to `__aarch64_swp8_sync'的错误其实可能问题并不在libtaclstream_va.so.1.0.0这个库,有可能是这个库他所依赖的其他库有问题,由于我的整个工程是从华为盒子拷贝到华为服务器的,所以可能就是libtaclstream_va.so.1.0.0依赖的一些库跟目前的华为服务器的一些库版本不太一样。

然后我突然想起来:/usr/bin/ld: /lib/aarch64-linux-gnu/libcairo.so.2: undefined reference to `FT_Done_MM_Var‘_libcairo undefined reference-CSDN博客

当初刚开始往盒子上面移植的时候,activeMQ这个库重新编译过,而现在直接把盒子上重新编译的库拷贝过来了,在华为服务器上库不匹配。

另外从这几个错误也能总结点经验:

1.很多时候报错在libtaclstream_va.so.1.0.0这个库,但是错误的原因可能是在另一个库。

2.如果库明明找到了,却还是提示未定义的东西,那很可能就是库不匹配。

参考文献:

/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21‘ not found (required by_libstdc++.so.6.0.25下载-CSDN博客

/usr/bin/ld: /lib/aarch64-linux-gnu/libcairo.so.2: undefined reference to `FT_Done_MM_Var‘_libcairo undefined reference-CSDN博客 

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

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

相关文章

通过自定义分配器解决 ZGC中的碎片问题

1.问题 ZGC 和其他垃圾收集器通常使用碰撞指针分配&#xff0c;这对于顺序分配很有效&#xff0c;但随着时间的推移会导致碎片化。当产生无法轻松重用的内存间隙时&#xff0c;就会发生碎片化&#xff0c;这需要昂贵的活动对象重新定位。这项研究的目标是通过使用基于空闲列表…

LCP 61. 气温变化趋势

题目 力扣城计划在两地设立「力扣嘉年华」的分会场&#xff0c;气象小组正在分析两地区的气温变化趋势&#xff0c;对于第 i ~ (i1) 天的气温变化趋势&#xff0c;将根据以下规则判断&#xff1a; 若第 i1 天的气温 高于 第 i 天&#xff0c;为 上升 趋势若第 i1 天的气温 等…

Flash页、扇区、块的区别

文章目录 前言玩转Flash的小知识一、页(Page)二、扇区(Sector)三、块(Block)总结存储基础知识 瑞萨芯片简介(片上资源分配)和工具链使用 前言 FLASH 存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速…

SpringBoot测试实践

测试按照粒度可分为3层&#xff1a; 单元测试&#xff1a;单元测试&#xff08;Unit Testing&#xff09;又称为模块测试 &#xff0c;是针对程序模块&#xff08;软件设计的最小单位&#xff09;来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。在过程化编程中…

【自动驾驶】ROS小车系统、运动底盘的运动学分析和串口通信控制

文章目录 小车组成轮式运动底盘的组成轮式运动底盘的分类轮式机器人的控制方式感知传感器ROS决策主控ROS介绍ROS的坐标系ROS的单位机器人电气连接变压模块运动底盘的电气连接ROS主控与传感器的电气连接ROS主控和STM32控制器两种控制器的功能运动底盘基本组成电池电机控制器与驱…

AI视频教程下载-用LangChain 开发 OpenAI、 LLAMA 、 Gemini 等AI应用

LangChain MasterClass- OpenAI LLAMA 2 GPT LLM Apps__ Python&#xff08;LangChain MasterClass-Develop 7 OpenAI LLM Apps using Python&#xff09; 探索LangChain、Pinecone、OpenAI、LLAMA 2及Google Gemini Pro LLM在现实世界中的应用。构建AI应用——拥抱脸&#xff…

写一个可以批量修改图片分辨率的工具

说在前面 &#x1f388;在视觉内容至关重要的今天&#xff0c;图片尺寸的调整对于网站加载速度和用户体验有着直接影响。本文介绍的Node.js工具&#xff0c;通过简单的命令行操作&#xff0c;允许用户批量调整图片尺寸&#xff0c;支持单张图片和整个目录的操作&#xff0c;提供…

【机器学习】---无监督学习

引言 在机器学习的广阔领域中&#xff0c;无监督学习扮演着至关重要的角色。不同于有监督学习&#xff0c;无监督学习处理的是没有标签的数据集&#xff0c;即我们不知道每个数据点的正确答案或分类。然而&#xff0c;这并不意味着无监督学习无法为我们提供有价值的信息。相反…

AI音乐:创新引擎还是创意终结者?

✨作者主页&#xff1a; Mr.Zwq✔️个人简介&#xff1a;一个正在努力学技术的Python领域创作者&#xff0c;擅长爬虫&#xff0c;逆向&#xff0c;全栈方向&#xff0c;专注基础和实战分享&#xff0c;欢迎咨询&#xff01; 您的点赞、关注、收藏、评论&#xff0c;是对我最大…

学生管理系统更新(账号系统)

展示 头文件 #pragma once #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h>//输入输出函数 #include<stdlib.h>//动态分配函数和随机函数 #include<windows.h>//控制台程序&#xff0c;用来实现cmd指令&#xff0c;title指令&#xff0c;cls指令等等 …

Ollama深度探索:AI大模型本地部署的全面教程

目录 引言一、Ollama概述1、定义与定位2、核心功能3、技术优势4、应用场景 二、安装与配置1、系统要求2、安装方法3、配置指南4、启动Ollama服务 四、快速开始1、启动Ollama2、部署运行模型3、REEST API 五、自定义模型1、定制化的必要性2、使用Modelfile定制模型3、参数调整4、…

IPSEC VPN

IPSEC VPN IPSEC是为IP网络提供安全性的协议和服务的集合,是一种协议簇&#xff0c;一个基于网络层&#xff0c;应用密码学的安全信息协议组。一开始TCP/IP 没有考虑到信息的安全传输。IPSEC协议簇诞生的意义就是保证TCP/IP的安全传输。 伪头部校验&#xff1a;TCP再校验的时…

升级到tomcat10和Java 21后,idea控制台system.out.println输出中文乱码问题

最近一次性从tomcat 9升级到tomcat 10&#xff0c;同时Java sdk也从1.8升级到21。 升级过程中&#xff0c;当然会遇到很多问题&#xff0c;但是控制台输出中文乱码问题&#xff0c;着实折腾了很久。 1、尝试各种方法 网上说的很多通用方法都试过了&#xff0c;就是不生效。包…

前端:Element UI 与 Vuetify 的选择

vuetify优势 1、多端适配&#xff0c;Vuetify完全按照Material设计规范进行开发&#xff0c;每一个组件都经过精心设计&#xff0c;具有模块化、响应式和优秀的性能。 使用独特和动态的 布局 自定义您的应用程序&#xff0c;并使用 SASS 变量 自定义您的组件的样式。只需要做下…

【CT】LeetCode手撕—236. 二叉树的最近公共祖先

目录 题目1- 思路2- 实现⭐236. 二叉树的最近公共祖先——题解思路 3- ACM实现 题目 原题连接&#xff1a;236. 二叉树的最近公共祖先 1- 思路 模式识别 模式1&#xff1a;二叉树最近公共祖先 ——> 递归 判断 递归思路&#xff0c;分情况判断&#xff1a; 1.参数及返…

香港“试水”医疗多模态大模型

更好地引入及发掘行业数据有望为垂直领域内的多模态大模型开发提供新可能。中国香港特区传统科研优势要嫁接产业风口&#xff0c;国际化渠道如何与内地资源携手&#xff1f; 产业多模态大模型“风头”正盛&#xff0c;在积极寻找经济新动能的中国香港特区&#xff0c;相关产业…

SQL新手蜕变:掌握这20条常用SQL语句,让你也能成为高手!

序言 在现代软件开发中&#xff0c;SQL&#xff08;Structured Query Language&#xff0c;结构化查询语言&#xff09;作为与数据库交互的标准编程语言&#xff0c;是每个开发者必学的基础技能。掌握SQL并在数据库管理与数据分析中应用自如&#xff0c;能显著提升开发效率和数…

如何修复“AI的原罪”

如何修复“AI的原罪” 上个月&#xff0c;《纽约时报》声称&#xff0c;科技巨头OpenAI和谷歌不顾服务条款和版权法的禁止&#xff0c;将大量YouTube视频转录成文本&#xff0c;并将其用作人工智能模型的额外训练数据&#xff0c;从而进入了版权灰色地带。《纽约时报》还援引Me…

掌握JavaScript ES6精髓:探索函数和对象的高级扩展与实用技巧

序言 JavaScript&#xff0c;作为前端开发中不可或缺的语言&#xff0c;已经发展到了ECMAScript 2015&#xff08;简称ES6&#xff09;以及后续的版本。ES6带来了诸多语法上的改进和创新&#xff0c;使得代码更加简洁、优雅&#xff0c;同时也提供了更多的编程模式和实用技巧。…

【ONE·基础算法 || 记忆化搜索】

总言 主要内容&#xff1a;编程题举例&#xff0c;熟悉理解记忆化搜索类题型&#xff08;对比递归、动态规划理解运用&#xff09;。             文章目录 总言1、记忆化搜索1.1、基本介绍1.2、细节理解&#xff08;记忆搜索化、递归、动态规划……&#xff09; 2、斐…