2016-07-14 80 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創建一個。

    希望有所幫助。