2013-03-23 69 views
-1

我有我的應用程序在OSX和Win上工作,但我很難追蹤所有Linux所需的依賴項。理想情況下,我希望能夠在Fedora,CentOS和可能的Ubuntu上運行它。但是Ubuntu的優先級較低。難以跟蹤所有基於Qt的應用程序的Linux依賴關係

有人可以幫我弄清楚嗎?我可以很好地解決Linux的問題,但我不是專業人士。這讓我非常難過。

http://www.genecrucean.com/tmp/KickAssGUI.tar.gz(這是一個叫阿諾德的3D渲染一個簡單的GUI應用程序。www.solidangle.com)

+0

這到底如何與編程無關?我猜這只是代碼而且編譯後的任何事情都有好運氣?這與Qt中的編程絕對直接相關。 – crewshin 2013-03-24 19:21:47

回答

5

目前您的壓縮包裏面包含二進制.so文件Qt的5.這通常不是這樣做的方式在Linux上。您可以提供程序的源代碼並讓用戶自己構建它,也可以爲有問題的Linux發行版提供預構建包(.rpm或.deb)。這意味着構建專門用於某個Fedora發行版的軟件包,再次用於CentOS,以及用於Ubuntu。這些軟件包取決於libqt5,這是Linux發行版本身提供的一個軟件包。 爲了找出更多的依賴關係,使用LDD:

$ ldd program 

運行在不同的Linux版本相同的編譯的二進制通常是一個禁忌,因爲底層的共享庫的版本不同,雖然有些公司這樣做,即用於商業遊戲。 如果您使用靜態鏈接,那麼它可以工作。直到他們改變了內核中的一些東西。

您還應該考慮目標體系結構:ia32,amd64或其他內容。

也許這個問題在ServerFault上得到了更好的回答。

+0

+1爲包分發,並勇敢地下載隨機文件。但是,關於相同共享庫版本的部分只是部分正確的。如果主要版本相同,並且編譯源的次要版本小於運行時間,那麼事情就沒有問題。另外,內核開發者努力保持兼容性;你必須依靠一些深奧的東西來破壞一個程序。更可能的是發行版更改其內核'.config'。 – 2013-03-24 00:08:22