簡體   English   中英

如何在其他 linux 平台上部署帶有所有 dll 文件的 Qt 應用程序?

[英]How to deploy a Qt app with all dll files in other linux platform?

我在 linux os 中使用 Qt Creator 創建了一個 Web 瀏覽器。 我必須在另一個也有 linux 操作系統的系統上運行這個瀏覽器。 而且我不想在其他系統中安裝 Qt Creator。 我希望我的瀏覽器應該獨立運行。 使用 build 我創建了瀏覽器,但是當我運行 .exe 文件時,它顯示未找到 .dll 文件。 所以,我想知道如何將我的應用程序與庫綁定。 謝謝。

要創建 .deb 包,您可以根據需要調整我的方法。

/!\\ 您必須使用與 qt5-default 兼容的工具包來構建您的程序

創建一棵樹,例如:

package_folder
|-DEBIAN
  |-control (a file)
  |-postinst (bash script)
|-opt
  |-your_binary (your app binary)
|-usr
  |-bin
  |-share
    |-application
      |-package_folder.desktop (to create a shortcut)

控制文件:

Package: regexp-testor
Version: 1.0
Section: devel
Priority: optional
Architecture: amd64
Depends: qt5-default
Maintainer: thibsc <mail@mail.com>
Homepage: https://github.com/thibsc
Description: RegExp testor
 RegExp testor is a regular expression testor like the rubular.com website.

postinst 腳本:

#!/bin/bash
echo "Create a symbolic link towards the binary"
sudo ln -s /opt/regexp_testor/regexp_testor /usr/bin
echo "Enjoy ;)"

package_folder.desktop 文件:

[Desktop Entry]
Version=1.0
Type=Application
Name=RegExp testor
GenericName=RegExp testor
Comment=A regular expression testor like the rubular.com website
Exec=/opt/regexp_testor/regexp_testor
Terminal=false
MimeType=text/plain;
Icon=regexp_testor_icon
Categories=Development;
StartupNotify=true

然后將您置於 package_folder 的級別並運行sudo dpkg-deb --build package_folder ,您應該准備好使用 .deb 包。

編輯:
您還可以使用debpac生成數據包。

您正在尋找的正是您的標題所說的,它被稱為“部署”, Qt wiki 可以幫助您

首先出現問題的原因是,當您在系統上構建應用程序時,它會動態鏈接到您系統上特定路徑中的 Qt .so文件,而另一台計算機上顯然缺少這些文件,因此動態鏈接器拋出錯誤。 一種不使用工具的方法是實際分發帶有二進制文件的必要.so文件,並通過在帶有RPATH或環境變量的可執行文件中指定它來為鏈接器提供它們的路徑。 我提供的鏈接中的工具應該為您創建一個包,其中包含鏈接器可以在需要時組合的可執行文件和庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM