Can not load “libqxcb.so”

今天将qt的程序打包在客户机器上部署,弹出如下提示:

Got keys from plugin meta data ("xcb")
Cannot load library /home/lc1/Desktop/comTool/bin/platforms/libqxcb.so: (/usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5: version `Qt_5_PRIVATE_API' not found (required by /home/lc1/Desktop/comTool/bin/platforms/libqxcb.so))
QLibraryPrivate::loadPlugin failed on "/home/lc1/Desktop/comTool/bin/platforms/libqxcb.so" : "Cannot load library /home/lc1/Desktop/comTool/bin/platforms/libqxcb.so: (/usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5: version `Qt_5_PRIVATE_API' not found (required by /home/lc1/Desktop/comTool/bin/platforms/libqxcb.so))"
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

这种错误只会在linux或类linux操作系统上出现,Windows上不会出现。因为Windows机器不需要qxcb库。造成这种错误的原因是:1):部署软件时,没有将Qt插件文件下的platforms中的libqxcb.so库部署上去。2): 原因1)中的libqxcb.so库部署了,但是原因 1)中的libqxcb.so库又依赖了其它的Qt库,而这些依赖的库本应该从你提供的安装包的库目录查找的,现在却是从其它地方找的,如:从上面可以看到libqxcb.so依赖了libQt5XcbQpa.so.5,这个库本应该在你安装目录下,比如:你安装目录下有lib文件夹,且lib文件夹下有个libQt5XcbQpa.so.5,但从上面的提示可以看出,程序搜索的是/usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5,而不是你安装包目录下的lib文件夹下的libQt5XcbQpa.so.5,虽然说都是libQt5XcbQpa.so.5,但版本不一致可能会导致出现加载库失败,比如:你部署机器的linux系统自带的Qt(一般是因为linux有图形界面,而图形界面用到了Qt,所以对于图形界面的linux系统一般会有些Qt的库)版本是5.6.1,而你部署的程序是用其它版本开发的,比如:Qt 5.14.1,这就会导致不兼容而加载库失败。

解决方法如下:

1):在你程序需要部署的目录即安装包目录下新建platforms目录。

2):到你开发的机器上的Qt安装目录下的plugins/platforms目录下找到libqxcb.so,并将其拷贝到步骤1)中的platforms目录。

3):执行ldd libqxcb.so 以便找出libqxcb.so依赖的所有Qt库。

4):将步骤3)中找到的依赖库中所有和Qt有关的库拷贝到你安装包下的库目录下,如:

 安装包目录/lib 

      然后建立一些库的链接。

经过这四步骤后,目录应该如下;

 

   

5):执行:

sudo /etc/profile

在文件的末尾加入:

 export LD_LIBRARY_PATH=LD_LIBRARY_PATH:安装包目录/lib 

注意:有部分linux在/etc/profile中设置LD_LIBRARY_PATH不起作用,对这部分linux请自行查阅相关手册。

6):重启linux。

7):执行如下命令:

      

echo $LD_LIBRARY_PATH

如果输出中包含了 “ 安装包目录/lib”目录,则5)步骤配置成功

如果上面都没问题,则部署的程序应该能跑起来。

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: "cannot load library gdal19.dll"是指在加载gdal19.dll库时出现问题。gdal19.dll是一个与GIS(地理信息系统)相关的库文件。这个问题可能由以下几种原因引起: 1. 缺少gdal19.dll文件。如果该文件不存在于计算机系统中,无法加载该库文件。请确保gdal19.dll文件存在于正确的路径下。 2. gdal19.dll文件损坏。如果该文件损坏或损坏的部分无法被识别,加载过程会失败。可以尝试重新下载gdal19.dll文件,并确保文件完整无误。 3. 应用程序与gdal19.dll文件不兼容。某些应用程序需要特定版本的gdal19.dll文件才能正常运行。如果使用了不兼容的版本,则会出现加载错误。请查看软件的系统要求,并确保使用正确的gdal19.dll版本。 4. 环境变量设置错误。如果计算机系统的环境变量设置有问题,可能会导致无法加载库文件。请检查环境变量设置,并确保相关路径正确配置。 针对该问题,可以尝试以下解决方法: 1. 检查gdal19.dll文件。确保该文件存在于正确的位置,并且没有损坏。 2. 重新下载gdal19.dll文件。如果文件确实丢失或损坏,从可靠的源重新下载该文件。 3. 更新应用程序。确保应用程序与gdal19.dll文件兼容,并尝试升级或更新软件版本。 4. 检查环境变量设置。确保计算机的环境变量中包含正确的路径,以便正确加载gdal19.dll库文件。 总结起来,"cannot load library gdal19.dll"问题通常是由于文件缺失、文件损坏、版本不兼容或环境变量设置错误等原因引起的。根据具体情况,可以采取相应的解决方法来解决该问题。 ### 回答2: "cannot load library gdal19.dll"错误通常出现在使用GDAL库时,由于系统无法加载gdal19.dll库文件导致。以下是可能解决此问题的几种方法: 1. 确认文件路径:首先确保gdal19.dll库文件位于正确的文件路径中。您可以使用文件资源管理器搜索该文件,确保它存在于您正在使用的项目或应用程序的文件路径下。 2. 检查版本兼容性:确保使用的gdal19.dll库文件与您的操作系统和安装程序的版本兼容。不同版本的库文件可能与操作系统或应用程序不兼容,导致加载错误。 3. 更新GDAL库文件:尝试更新您使用的GDAL库文件。您可以从GDAL官方网站或其他可靠来源下载最新版本的GDAL库,并替换掉旧版本的gdal19.dll文件。 4. 确认环境变量:确保系统的环境变量中包含正确的GDAL库文件路径。您可以在系统的环境变量设置中添加GDAL库文件的正确路径,并重启您的应用程序以使更改生效。 5. 重新安装应用程序:如果上述方法都没有成功解决问题,您可以尝试重新安装使用GDAL库的应用程序。重新安装可能会修复任何缺失或损坏的文件,并解决库加载错误。 请注意,上述方法根据情况而异,可能需要您具体的操作系统和应用程序环境来进行调整。如果问题仍然存在,您可能需要进一步调查与GDAL库文件的使用和加载相关的特定问题。 ### 回答3: "cannot load library gdal19.dll" 是一个常见的错误信息,通常出现在使用GDAL库时。这个错误表示系统无法加载gdal19.dll库文件。 这个错误可能有以下几个常见原因: 1. 文件缺失:gdal19.dll文件可能不存在于指定的路径中。解决方法是重新安装GDAL库,确保正确地安装了这个文件。 2. 文件路径问题:系统无法在环境变量中找到gdal19.dll的路径。可以通过检查环境变量设置,确保GDAL库的正确路径已添加到环境变量中。 3. 文件冲突:如果系统中存在多个gdal19.dll文件,可能导致冲突。解决方法是删除冲突文件,并确保只有一个正确版本的gdal19.dll存在。 4. 兼容性问题:某些程序可能不兼容特定版本的gdal19.dll文件。尝试更新GDAL库或与相关应用程序的开发者联系以解决兼容性问题。 为了解决这个问题,你可以尝试以下步骤: 1. 确保gdal19.dll文件存在,并位于正确的路径中。 2. 检查环境变量设置,确保已添加GDAL库的正确路径。 3. 如果存在多个gdal19.dll文件,删除冲突文件,只保留一个正确版本。 4. 尝试更新GDAL库或与相关程序的开发者联系以解决兼容性问题。 总之,解决"cannot load library gdal19.dll"错误通常需要检查文件的存在性和路径设置,并可能涉及更新库或解决兼容性问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值