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

来源:互联网 发布:博斯曼法案 知乎 编辑:程序博客网 时间:2024/06/06 04:20

需求

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

方法一:修改.pro文件

         添加:    QMAKE_LFLAGS += -Wl,-rpath,/usr/local/Qt5.9.3/lib
         

方法二:qmake后直接修改Makefile

         红色标记部分,是额外添加的
        

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

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

拓展2:linux搜索库路径

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

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

       QWIdget与QMl分别依赖不同的库,同时还依赖平台插件
       
       将相关环境变量添加进系统
       
 
阅读全文
0 0
原创粉丝点击