Ubuntu虚拟机libqt5webenginecore.so: .dynsym local symbol at index报错解决

一. 问题发现

之前在Windows系统下实现了qt的GPS调用界面,因为需要在开发板上运行qt程序,故打算先在Ubuntu虚拟机上进行调试,没问题之后再下载到开发板运行。

得益于qt跨平台的特性(之前也用java写过android感觉qt这点确实顶),我们可以将Windows环境下的qt工程移植到Ubuntu系统下,只是需要修改一些配置。

首先肯定是Ubuntu虚拟机环境搭建,然后安装qt,这里就省略了奥,咱们直入主题。

我把Windows下的工程目录copy到Ubuntu之后先试着运行了一下,果不其然有报错:

好几十行报错的大礼。。。。。。

但是仔细一看发现都是指向了webengine这玩意,回想起之前在Windows下开发qt也是因为webengine遭老罪了,于是查到了不同Linux系统的解决办法

二. 解决方法

(1)对于Ubuntu系统

https://www.cnblogs.com/feipeng8848/p/17645125.html

在.pro工程下加入

CONFIG += use_gold_linker
LIBS += -ldl

(2)对于Centos系统

### 解决 `libQt5XcbQpa.so.5` 中 `_ZdlPvm` 符号未定义问题 当遇到 `libQt5XcbQpa.so.5: undefined symbol: _ZdlPvm, version Qt_5` 的错误时,这通常意味着存在库文件冲突或版本不匹配的情况。以下是详细的解决方案: #### 方法一:修复库路径和依赖关系 如果系统中有多个不同版本的 Qt 库共存,则可能会导致加载错误的库文件。可以尝试通过调整环境变量来指定正确的库路径。 ```bash export LD_LIBRARY_PATH=/path/to/qt/lib:$LD_LIBRARY_PATH ``` 其中 `/path/to/qt/lib` 需要替换为实际安装的 Qt 版本对应的库目录位置[^2]。 #### 方法二:重新创建符号链接 有时默认安装路径下的共享库可能被损坏或者不是预期使用的版本。可以通过移除旧有的符号链接并指向自定义安装的新版本来解决问题。 ```bash sudo rm /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 sudo ln -s /home/user/Qt5.x.y/gcc_64/lib/libQt5Core.so.5 /usr/lib/x86_64-linux-gnu/ ``` 这里假设新的 Qt 安装位于用户的家目录中,并且版本号为 5.x.y,请根据实际情况修改命令中的路径。 #### 方法三:更新或重建应用程序构建配置 对于开发者而言,确保项目使用的是正确版本的 Qt SDK 并且编译器设置无误非常重要。检查 CMakeLists.txt 或 qmake.pro 文件内的 QTDIR 和其他相关宏定义是否指向了期望的位置。 另外,在某些情况下,清理之前的 build 缓存再执行一次完整的 clean-all 构建过程也可能有助于消除此类问题。 #### 方法四:安装缺失字体配置组件 考虑到该问题是由于 FreeType 函数调用失败引起的,确认已安装最新稳定版 freetype-devel 包也是必要的步骤之一。因为 FT_Property_Set 是来自 Freetype 字体渲染引擎的一个接口函数[^1]。 ```bash sudo apt-get install libfreetype6-dev # Debian-based systems # or sudo yum install freetype-devel # RedHat-based systems ``` 完成上述操作之后重启计算机使更改生效,再次运行程序测试是否解决了原始报错情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值