【问题标题】:How do I create an 'install' package for a Qt application?如何为 Qt 应用程序创建“安装”包?
【发布时间】:2012-02-20 08:53:00
【问题描述】:

通常在您使用的基于 linux 的操作系统上安装软件包

./configure
make 
make install

这是如何工作的?以及如何创建可以以这种方式安装的包?

我的应用程序使用 Qt 框架,我想我的目标是像“MyPackage.tar.gz”这样的东西

【问题讨论】:

    标签: linux qt package qmake


    【解决方案1】:

    configure 通常是 GNU 构建系统 (autotools) 的一部分,在典型的 Qt 项目中不使用它。 qmake 用于生成构建文件,它在内部处理 configure 为非 qt 项目所做的大部分任务。

    Qt 应用程序的典型构建安装过程是

    qmake
    make 
    make install
    

    如果您需要相同的命令名称,您可以创建一个调用 qmake 的简单 ./configure 脚本。如果需要,您还可以将 autotools 与 Qt 一起使用,参见例如Qt Creator Instructions For Autotools

    【讨论】:

      【解决方案2】:

      您可以从您的项目中创建一个 debian 软件包。据我了解,您想创建一个用于分发的包,所以我建议从您的项目中创建一个 debian 包。 Here 是 Debian 打包系统的介绍。在文章中,他们有时描述了如何创建一个“规则”文件,该文件是构建过程的核心。以下是我通常用于 Qt/KDE 项目的示例:

      #!/usr/bin/make -f
      #export DH_VERBOSE=1
      # This is the debhelper compatability version to use.
      
      #export DH_COMPAT=3
      DESTDIR=$(CURDIR)/debian/project
      TR_DIR=$(CURDIR)/debian/project/usr/share/qt4/translations
      
      configure:
              qmake project.pro
      
      clean:
              dh_testdir
              dh_testroot
              dh_clean
      
      build:  configure
              dh_testdir
              lrelease translations/project_en.ts
              $(MAKE)
      
      install: build
              mkdir -p $(TR_DIR)
              cp translations/project_en.qm $(TR_DIR)
              $(MAKE) INSTALL_ROOT=$(CURDIR)/debian/project install
              dh_installdirs
      
      binary-arch: build install
               dh_testdir
               dh_testroot
               dh_installmenu
               dh_link
               dh_strip
               dh_compress
               dh_fixperms
               dh_installdeb
               dh_shlibdeps
               dh_gencontrol
               dh_md5sums
               dh_builddeb
      

      这对于小型项目通常就足够了。

      【讨论】:

        【解决方案3】:

        Qt 经常与 CMake 一起使用,我强烈推荐。值得注意的一点是它喜欢源外构建。

        您的配置脚本可能是

        #!/bin/bash
        (mkdir build; cd build; ccmake ..)
        

        makefile 可以是

        #!/bin/bash
        (cd build; make)
        

        【讨论】:

          【解决方案4】:

          较新版本的 debhelper 支持 qmake。一个 rules 文件,例如,

          #!/usr/bin/make -f
          %:
                  dh $@ --buildsystem=qmake
          

          仅此而已。你需要,

          bar.file = foo
          bar.path = install/dir
          
          INSTALLS += bar
          

          在您的项目“pro”或 qmake 文件中。 qmake 将创建安装目标,perl 文件 /usr/share/perl5/Debian/Debhelper/Buildsystem/qmake.pm 将被调用并解析 qmake 文件。您需要创建 'debian/' 文件、changelogcompatcontrolcopyright 以及 规则文件。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-06-02
            • 1970-01-01
            • 2012-03-13
            • 2018-08-05
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多