libicui18n.so.52 needed by libQt5Core.so.5, not found报错解决

本文解决在编译OpenCV程序时遇到的链接错误,详细介绍了如何通过查找缺失的库文件并设置环境变量LD_LIBRARY_PATH来解决libicui18n.so.52等库文件未找到的问题。

在编译openCV程序时,出现报错:

/usr/bin/ld: warning: libicui18n.so.52, needed by /opt/Qt5.3.2/5.3/gcc_64/lib/libQt5Core.so.5, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libicuuc.so.52, needed by /opt/Qt5.3.2/5.3/gcc_64/lib/libQt5Core.so.5, not found (try using -rpath or -rpath-link)

提示缺少链接文件,libicui18n.so.52,使用命令ldd /opt/Qt5.3.2/5.3/gcc_64/lib/libQt5Core.so.5查找到所有的链接文件,其中就有libicui18n.so.52的链接路径:
libicui18n.so.52 => /opt/Qt5.3.2/5.3/gcc_64/lib/libicui18n.so.52 (0x00007f690e1c0000)
将此路径添加到环境变量LD_LIBRARY_PATH中;
export LD_LIBRARY_PATH=/opt/Qt5.3.2/5.3/gcc_64/lib/:$LD_LIBRARY_PATH
再次编译就不会报错了。

银河麒麟ARM系统使用box64运行x86程序时出现一下错误 lenovo@lenovo-pc:/media/lenovo/DATA/soft_DMG/Soft/Soft$ box64 '/media/lenovo/DATA/soft_DMG/Soft/Soft/DamageAssessSoft' [BOX64] Box64 arm64 v0.3.6 with Dynarec built on Sep 3 2025 19:15:27 [BOX64] Dynarec for ARM64, with extension: ASIMD AES CRC32 PMULL SHA1 SHA2 [BOX64] Running on Phytium,D2000/8 E8C with 8 cores, pagesize: 4096 [BOX64] Will use hardware counter measured at 48.0 MHz emulating 3.0 GHz [BOX64] Didn't detect 48bits of address space, considering it's 39bits [BOX64] Counted 61 Env var [BOX64] Library search path: [BOX64] Binary search path: ./:bin/:/usr/local/sbin/:/usr/local/bin/:/usr/sbin/:/usr/bin/:/sbin/:/bin/:/usr/games/:/usr/local/games/:/path/to/python3/:/usr/bin/python3.8/ [BOX64] Looking for /media/lenovo/DATA/soft_DMG/Soft/Soft/DamageAssessSoft [BOX64] Rename process to "DamageAssessSoft" [BOX64] Using emulated /media/lenovo/DATA/soft_DMG/Soft/Soft/lib/libJW_QtDB_Lib.so.1 [BOX64] Using emulated /media/lenovo/DATA/soft_DMG/Soft/Soft/lib/libJW_QtIO_Lib.so.1 [BOX64] Using emulated /media/lenovo/DATA/soft_DMG/Soft/Soft/lib/libJW_View_Lib.so.1 [BOX64] Using emulated /media/lenovo/DATA/soft_DMG/Soft/Soft/lib/libJW_AppCommon_Lib.so.1 [BOX64] Using emulated /media/lenovo/DATA/soft_DMG/Soft/Soft/lib/libJW_3DWindow_Lib.so.1 [BOX64] Using emulated /media/lenovo/DATA/soft_DMG/Soft/Soft/lib/libpython3.8.so.1.0 [BOX64] Using emulated /media/lenovo/DATA/soft_DMG/Soft/Soft/lib/libonnxruntime.so.1.16.3 [BOX64] Using native(wrapped) libtiff.so.5 [BOX64] Using emulated /usr/lib/box64-x86_64-linux-gnu/libstdc++.so.6 [BOX64] Using native(wrapped) libm.so.6 [BOX64] Using native(wrapped) libc.so.6 [BOX64] Using native(wrapped) ld-linux-x86-64.so.2 [BOX64] Using native(wrapped) libpthread.so.0 [BOX64] Using native(wrapped) libdl.so.2 [BOX64] Using native(wrapped) libutil.so.1 [BOX64] Using native(wrapped) librt.so.1 [BOX64] Using native(wrapped) libbsd.so.0 [BOX64] Using emulated /usr/lib/box64-x86_64-linux-gnu/libgcc_s.so.1 [BOX64] Using emulated /media/lenovo/DATA/soft_DMG/Soft/Soft/lib/libpcl_surface.so.1.8 [BOX64] Using emulated /media/lenovo/DATA/soft_DMG/Soft/Soft/lib/libpcl_recognition.so.1.8 [BOX64] Using emulated /media/lenovo/DATA/soft_DMG/Soft/Soft/lib/libboost_system.so.1.64.0 [BOX64] Using emulated /media/lenovo/DATA/soft_DMG/Soft/Soft/lib/libflann_cpp.so.1.9 [BOX64] Using emulated /media/lenovo/DATA/soft_DMG/Soft/Soft/lib/libvtkRenderingCore-8.0.so.1 [BOX64] Using emulated /media/lenovo/DATA/soft_DMG/Soft/Soft/lib/libopencv_world.so.3.1 [BOX64] Using emulated /media/lenovo/DATA/soft_DMG/Soft/Soft/lib/libQt5Charts.so.5 [BOX64] Using emulated /media/lenovo/DATA/soft_DMG/Soft/Soft/lib/libQt5PrintSupport.so.5 [BOX64] Using emulated /media/lenovo/DATA/soft_DMG/Soft/Soft/lib/libQt5Widgets.so.5 [BOX64] Using emulated /media/lenovo/DATA/soft_DMG/Soft/Soft/lib/libQt5Gui.so.5 [BOX64] Using emulated /media/lenovo/DATA/soft_DMG/Soft/Soft/lib/libQt5Sql.so.5 [BOX64] Using emulated /media/lenovo/DATA/soft_DMG/Soft/Soft/lib/libQt5Xml.so.5 [BOX64] Using emulated /media/lenovo/DATA/soft_DMG/Soft/Soft/lib/libQt5Core.so.5 [BOX64] Using native(wrapped) libz.so.1 [BOX64] Using emulated /media/lenovo/DATA/soft_DMG/Soft/Soft/lib/libicui18n.so.56 [BOX64] Using emulated /media/lenovo/DATA/soft_DMG/Soft/Soft/lib/libicuuc.so.56 [BOX64] Using emulated /media/lenovo/DATA/soft_DMG/Soft/Soft/lib/libicudata.so.56 [BOX64] Using native(wrapped) libgthread-2.0.so.0 [BOX64] Using native(wrapped) libglib-2.0.so.0 [BOX64] Look for arc4random in loaded elfs [BOX64] Warning, function arc4random not found in lib libbsd.so.0 [BOX64] Look for arc4random in loaded elfs [BOX64] Warning, function arc4random not found in lib libbsd.so.0 [BOX64] Using native(wrapped) libGL.so.1 [BOX64] Using emulated /media/lenovo/DATA/soft_DMG/Soft/Soft/lib/libjpeg.so.8 [BOX64] Using emulated /media/lenovo/DATA/soft_DMG/Soft/Soft/lib/libpng12.so.0 [BOX64] Error loading needed lib libvtkCommonColor-8.0.so.1 [BOX64] Error loading needed lib libvtkFiltersGeometry-8.0.so.1 [BOX64] Error loading needed lib libvtkFiltersSources-8.0.so.1 [BOX64] Error loading needed lib libvtkFiltersGeneral-8.0.so.1 [BOX64] Error loading needed lib libvtkFiltersCore-8.0.so.1 [BOX64] Error loading needed lib libvtkCommonExecutionModel-8.0.so.1 [BOX64] Error loading needed lib libvtkCommonComputationalGeometry-8.0.so.1 [BOX64] Error loading needed lib libvtkCommonDataModel-8.0.so.1 [BOX64] Error loading needed lib libvtkCommonSystem-8.0.so.1 [BOX64] Error loading needed lib libvtksys-8.0.so.1 [BOX64] Error loading needed lib libvtkCommonTransforms-8.0.so.1 [BOX64] Error loading needed lib libvtkCommonMath-8.0.so.1 [BOX64] Error loading needed lib libvtkCommonCore-8.0.so.1 [BOX64] Error loading one of needed lib [BOX64] Error initializing needed lib libstdc++.so.6 [BOX64] Using emulated /media/lenovo/DATA/soft_DMG/Soft/Soft/lib/libboost_filesystem.so.1.64.0 [BOX64] Error loading needed lib libpcl_io.so.1.8 [BOX64] Error loading needed lib libpcl_features.so.1.8 [BOX64] Error loading needed lib libpcl_filters.so.1.8 [BOX64] Error loading needed lib libpcl_search.so.1.8 [BOX64] Error loading needed lib libpcl_kdtree.so.1.8 [BOX64] Error loading needed lib libpcl_sample_consensus.so.1.8 [BOX64] Error loading needed lib libpcl_common.so.1.8 [BOX64] Using native(wrapped) libgomp.so.1 [BOX64] Error loading one of needed lib [BOX64] Error initializing needed lib libgcc_s.so.1 [BOX64] Error loading needed lib libpcl_search.so.1.8 [BOX64] Error loading needed lib libpcl_kdtree.so.1.8 [BOX64] Error loading needed lib libpcl_octree.so.1.8 [BOX64] Using emulated /media/lenovo/DATA/soft_DMG/Soft/Soft/lib/libqhull.so.7 [BOX64] Error loading needed lib libpcl_common.so.1.8 [BOX64] Error loading one of needed lib [BOX64] Error initializing needed lib libpthread.so.0 [BOX64] Using native(wrapped) libexpat.so.1 [BOX64] Error loading needed lib libpcl_common.so.1.8 [BOX64] Error loading needed lib libpcl_features.so.1.8 [BOX64] Error loading needed lib libpcl_filters.so.1.8 [BOX64] Error loading needed lib libpcl_io.so.1.8 [BOX64] Error loading needed lib libpcl_kdtree.so.1.8 [BOX64] Error loading needed lib libpcl_search.so.1.8 [BOX64] Error loading needed lib libpcl_segmentation.so.1.8 [BOX64] Error loading needed lib libpcl_visualization.so.1.8 [BOX64] Using emulated /media/lenovo/DATA/soft_DMG/Soft/Soft/lib/libboost_thread.so.1.64.0 [BOX64] Using emulated /media/lenovo/DATA/soft_DMG/Soft/Soft/lib/libflann.so.1.9 [BOX64] Using emulated /media/lenovo/DATA/soft_DMG/Soft/Soft/lib/libJW_PluginAPI_Lib.so.1 [BOX64] Using native(wrapped) libgmp.so.10 [BOX64] Error loading one of needed lib [BOX64] Error initializing needed lib libQt5Widgets.so.5 [BOX64] Using emulated /media/lenovo/DATA/soft_DMG/Soft/Soft/lib/libJW_FrameBuffer_Lib.so.1 [BOX64] Using emulated /media/lenovo/DATA/soft_DMG/Soft/Soft/lib/libQt5OpenGL.so.5 [BOX64] Error loading one of needed lib [BOX64] Error: Loading needed libs in elf /media/lenovo/DATA/soft_DMG/Soft/Soft/DamageAssessSoft 如何解决
09-05
### 创建指向特定版本 `libicui18n.so` 的软链接 在 Linux 系统中,如果程序依赖特定版本的 `libicui18n.so`,但系统中已存在另一个版本,可以通过创建软链接的方式,将程序指向已存在的库文件,以解决版本不匹配或依赖缺失的问题。 创建软链接时,应确保目标库文件存在,并且具有正确的权限和路径。通常情况下,系统库文件位于 `/usr/lib/x86_64-linux-gnu/` 或 `/usr/local/lib/` 目录下。例如,若系统中已存在 `libicui18n.so.55`,但程序需要 `libicui18n.so.66`,可以执行以下命令: ```bash sudo ln -s /usr/lib/x86_64-linux-gnu/libicui18n.so.55 /usr/lib/x86_64-linux-gnu/libicui18n.so.66 ``` 该命令会创建一个指向 `libicui18n.so.55` 的软链接,并命名为 `libicui18n.so.66`,从而满足程序的依赖需求[^2]。 同样,如果库文件位于其他路径,例如 `/opt/Qt5.12.6/5.12.6/gcc_64/lib/`,则可使用如下命令: ```bash sudo ln -s /opt/Qt5.12.6/5.12.6/gcc_64/lib/libicui18n.so.52 /usr/lib/x86_64-linux-gnu/libicui18n.so.66 ``` 该操作将使系统在加载 `libicui18n.so.66` 时,实际使用 `libicui18n.so.52` 文件[^1]。 需要注意的是,创建软链接前应确保目标路径具有写权限,并且不会覆盖现有库文件。此外,建议使用 `ldconfig` 更新库缓存,以确保新创建的链接被系统识别: ```bash sudo ldconfig ``` 如果系统中没有所需的 ICU 库版本,可以尝试通过下载对应的 `.deb` 或 `.rpm` 包进行安装,例如: ```bash wget http://security.ubuntu.com/ubuntu/pool/main/i/icu/libicu55_55.1-7_amd64.deb sudo dpkg -i libicu55_55.1-7_amd64.deb ``` 此方法可直接安装 `libicui18n.so.55`,并自动配置相关软链接[^3]。 若使用交叉编译环境,如在 x86 主机上为 aarch64 构建项目,并涉及 ICU 库版本问题,可指定交叉编译参数以确保链接正确的库文件: ```bash ./configure --disable-samples --disable-tests \ --with-cross-build=/home/ubuntu/Downloads/aarch64/icu-release-55-2/icupc \ --prefix=/home/ubuntu/Downloads/aarch64/icu-release-55-2/icu4c/source/build \ --host=aarch64-linux-gnu \ CC=/usr/local/gcc-linaro-5.3.1-2016.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc \ CXX=/usr/local/gcc-linaro-5.3.1-2016.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++ ``` 该配置可确保在交叉编译过程中使用指定版本的 ICU 库,避免因版本不匹配导致的链接错误[^4]。 此外,若程序依赖的 `libdouble-conversion.so.1` 或其他库文件缺失,也可通过安装对应的 ICU 包来补充依赖,例如: ```bash wget http://security.ubuntu.com/ubuntu/pool/main/i/icu/libicu60_60.2-3ubuntu3.2_amd64.deb sudo apt-get install ./libicu60_60.2-3ubuntu3.2_amd64.deb ``` 此方法可安装完整的 ICU 库集,并自动处理相关依赖关系[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值