2017-02-24 34 views
-1

我用Raspbian Jessie在Raspberry Pi 2上使用Qt Creator在C++中編寫了一個應用程序。現在我想部署它,以便我可以在具有最少功能的另一個樹莓上使用它。這意味着沒有安裝desktop-gui或qtcreator。我正在使用Raspbian Jessie Lite。是否可以在沒有從源代碼構建Qt的情況下部署Qt應用程序?

我試圖按照這個文檔,但靜態鏈接和共享庫的方法都不起作用。 http://doc.qt.io/qt-5/linux-deployment.html

徹底搜索後,似乎這不起作用,因爲我有Qtcreator是「安裝」而不是「從源代碼構建」。 這是假設嗎?

如果沒有源代碼構建,部署我的應用程序是不可能的?

+0

我不認爲這取決於你如何建立Qt。最重要的是,如果您的應用程序不存在於目標系統上,應該將其與相關的Qt庫一起部署。 – vahancho

回答

1

在Linux上部署qt應用程序的首選方法是將其鏈接到您的目標的官方軟件包分發中的共享對象。

它與qdeveloper無關,只與目標qt庫有關。

相反,如果從源代碼構建qt,則需要提供共享對象。

這意味着: - 編譯它與您正在使用以及具有Qt和開發的軟件包安裝 的發行resbery PI - 包吧acording到發行 - 安裝qt軟件安裝後,在目標上。 qt開發包不再需要了。

小心,其他庫也涉及到,同樣適用於他們。

+0

請編輯您的答案。混合_shared objects_和_dynamic鏈接libraries_可能意味着嚴重的麻煩......如果這是關於Linux,那麼它應該是_shared objects_。 – Scheff

+0

你特別推薦在目標上安裝什麼樣的qt軟件包? (你知道apt-get命令嗎?) 我希望我的應用程序的可執行文件不需要安裝qt包。我認爲這就是整個部署的內容。 –

1

所以,基本上你想在其他Qt沒有安裝的系統中部署你的Qt應用程序。

在linux下部署Qt是一個相當困難的過程。您分享的The link是相當有知識但很難部署的過程。我想建議看看this。在這裏你可以找到an executable binary,使用它你可以爲你的Qt項目創建一個獨立的appimage,它可以在任何其他系統(運行相同的linux發行版)中運行。你只需輸入由Qt Creator自己創建的可執行二進制文件的路徑,上述工具將完成剩下的工作。它將解析所有依賴項並輸出Qt應用程序的獨立二進制文件,該文件可以在其他系統中運行。

我接受進一步的問題。希望這可以幫助。

+0

謝謝!我不得不做一些其他的事情,但現在我回到了這個問題。我試圖運行linuxdeployqt程序,但我得到這個錯誤:「無法執行二進制文件:Exec格式錯誤」。我假設這是因爲部署工具並不適用於Rapsberr pi ARM體系結構。我能做些什麼來完成這項工作? –

相關問題