2016-07-14 47 views
0

我有一个在Linux上使用Qt Creator构建的应用程序,现在想部署它。但是,我不想静态构建它,因为我不希望它是开源的。我尝试了ldd ./YourExecutable命令,但是它只列出(而不是添加)应用程序需要运行的附加依赖项。我的问题是,如何收集必要的依赖关系而无需单独查找这些文件?有没有工具,例如Windows上的windeployqt.exe,我可以在Linux上使用它来达到同样的目的?还是有比我想的更好的方法?Qt - 如何在Linux上动态部署应用程序?

+0

那么,你想编译的方式,其他人将无法阅读它没有反编译它? – 2016-07-14 22:07:58

+0

是的。在Windows上,我可以创建一个文件夹,将可执行文件放入其中,并添加所有必需的依赖项和文件,以使可执行文件可以工作,并将该文件夹作为发行版。我正在尝试在Linux上做同样的事情。 – xcyl40

+0

它可以在Windows上安装一个工具来编译和链接到Linux吗? – 2016-07-14 22:14:21

回答

0
  1. 获取Cygwin的SETUP.EXE:http://www.cygwin.com/

1.1。运行setup.exe并继续打包选择列表。

1.2。在Devel catagory下选择您需要编译源代码的工具。例如'GNU make'为 。

1.3。完成安装。

  • 找cygwin的Linux的crosscompilers: “的cygwin-GCC-linux.tar.bz2”(68.2 MB)。 md5sum:340e91a346f5bb17e660db10e43005b8

    这些编译器是用crosstool 0.28-rc37编写的。该软件包包含: gcc-3.3.4和gcc-2.95.3(用于i386(glibc 2.1.3))和gcc-3.3.3(用于amd64 (glibc 2.3.2))。

    注意!现在有更新版本的GCC可以使用glibc 2.3.2: “cygwin-gcc-3.3.6-glibc-2.3.2-linux.tar.bz2(i386,x86_64)”。

  • 2.1。将'cygwin-gcc-linux.tar.bz2'复制到'c:\ cygwin'或安装目录,其中您在setup.exe中选择了 。

    2.2。打开Cygwin shell并使用'cd /'将目录更改为root。

    2.3。使用命令解压缩到Cygwin根目录: 'tar -jxvf cygwin-gcc-linux.tar.bz2'。

    交叉编译器安装在'/ opt/crosstool'下。您可以直接使用im 或使用命令:gcc-linux,g ++ -linux,gcc-linux-2.95, g ++ -linux-2.95,gcc-linux-x86_64和g ++ -linux-x86_64。

    来自:Cross-compiling on Windows for Linux 更多信息here

    0

    这听起来像你想使用的共享库的部署选项:

    http://doc.qt.io/qt-5/linux-deployment.html#creating-the-application-package

    然后,如果你想进一步去比,你可以看看制作.rpm或一个.deb。

    现在有很多qt项目的例子可以在GitHub上找到并且有软件包。通常对于预编译的二进制文件,您需要为x86创建一个,为x64创建一个。

    希望有所帮助。