代码之家  ›  专栏  ›  技术社区  ›  user7431005

在Linux上部署Qt应用程序[重复]

  •  1
  • user7431005  · 技术社区  · 6 年前

    在Windows中很容易做到这一点,我只需创建一个文件夹,将可执行文件放在那里,然后调用 windeployqt .dll 文件夹中的文件 Qt5Core.dll , Qt5Gui.dll Qt5Charts.dll ... 它创建了一些子文件夹,比如 iconengines/ imageformats/ platforms/ 还有更多。 这个文件夹总共包含43个文件。

    然而,我有点挣扎,因为我真的不知道如何开始。 有可能用同样的方法吗?将所有必需的库与可执行文件一起复制到一个文件夹中,并且只需将其复制到另一台使用Linux的计算机上并运行即可? (澄清一下:当我说Linux时,我指的是Ubuntu18.04或16.04)

    还是有不同的方法? 我只有一个学生许可证,所以我想我不允许静态链接库(但我必须再次阅读许可条款以确保)

    我读过这本书 manual 但老实说,我不明白所有的东西和所有的例子代码在那里。

    谢谢你的帮助。

    2 回复  |  直到 6 年前
        1
  •  1
  •   GKE    6 年前

    看看这个 Creating the Application Package

    #!/bin/sh
    appname=`basename $0 | sed s,\.sh$,,`
    
    dirname=`dirname $0`
    tmp="${dirname#?}"
    
    if [ "${dirname%$tmp}" != "/" ]; then
    dirname=$PWD/$dirname
    fi
    LD_LIBRARY_PATH=$dirname
    export LD_LIBRARY_PATH
    $dirname/$appname "$@"
    

    此脚本必须另存为 .sh 脚本和

    使脚本可执行,打开终端并执行以下操作:

    $ cd /pathToScript/
    $ sudo chmod +x scriptName.sh
    

    然后双击脚本运行。

    如Qt文件所述,这将使:

    …确保动态链接器将找到Qt库。请注意,您只需重命名脚本即可将其用于其他应用程序。

    如果您想静态地部署您的项目,您必须首先拥有一个从源代码构建的Qt的静态版本,可以在这里找到 headline from the Qt Docs .

    不必去寻找应用程序的依赖项。

        2
  •  -1
  •   hearot    6 年前

    qt 图书馆优先。

    qmake 如果你正在创建一个基于Qt的项目,这可能是一个解决方案。Qt Creator使用它作为默认值。

    Q制造商 生成编译程序所需的所有文件。试着用它。

    推荐文章