关于 QWidget+Qml程序打包到ubuntu时,程序与系统库版本不同,编译时添加并依赖自带库 的方法

需求

        更新了Qt版本到5.9.3之后,部署到ubuntu16.04上无法正常运行,需要使其正常运行(注意:此时不能将库直接添加至系统路径,因为ubuntun16.04依赖本身低版本的qt库,可能会产生其他问题)

方法一:修改.pro文件

         添加:    QMAKE_LFLAGS += -Wl,-rpath,/usr/local/Qt5.9.3/lib
          关于 QWidget+Qml程序打包到ubuntu时,程序与系统库版本不同,编译时添加并依赖自带库 的方法_第1张图片

方法二:qmake后直接修改Makefile

         红色标记部分,是额外添加的
         关于 QWidget+Qml程序打包到ubuntu时,程序与系统库版本不同,编译时添加并依赖自带库 的方法_第2张图片

拓展1:查看程序默认的额外搜索库路径

        使用命令"readelf -d [APP]"来检查[APP]使用的库查找路径,如下图
        

拓展2:linux搜索库路径

        linux下搜索库路径,如果有-Wl,-rpath,/usr/local/Qt5.9.3/lib,会先搜索rpath路径,然后搜索系统库路径,(若未指定,不会搜索应用所在目录,这点与windows不同)。

拓展3:依赖的其他环境变量和库文件

       QWIdget与QMl分别依赖不同的库,同时还依赖平台插件
        关于 QWidget+Qml程序打包到ubuntu时,程序与系统库版本不同,编译时添加并依赖自带库 的方法_第3张图片
       将相关环境变量添加进系统
       
 

你可能感兴趣的:(Qt开发,Qt部署,Qml部署,依赖库,搜索路径,ubuntu部署)